zoukankan      html  css  js  c++  java
  • 省选模拟61

    A. GTM

      显然每个点的贡献是独立的,考虑当一个点存在标记的时候会影响到哪些点,容易发现前面速度大于他和后面速度小于他的都会打上标记。进一步讨论可以发现,速度在一个区间内的点都会打上标记。

      所以可以处理出来每个点影响的速度区间,然后直接dp似乎并不可做。

      然后可以发现,任意两个区间不可能完全包含,互相包含的两个区间至少有一个端点是相同的。所以直接dp就行了。

     

    B. 字符串游戏

      考虑将整个转移的过程写成一个矩阵,最上面是T,最下面是S。

      在T上从后向前考虑,那么需要给每个连续字符区间的左端点找到一条路径,满足不和之前任意一条路径相交。

      贪心的做法是每次尽量往下走。

      那么考虑来维护当前点走到的这条折线。容易发现,一条线的折点数就是答案。

      之后进行简单的分类讨论即可。

      假如当前和后一个点走到的终点不一样, 那么可以发现其实就是新增了一个折点,并且其他折线整体偏移了1,用一个变量维护即可。

      否则简单维护。

    C. ACE

      考虑转化一下题意,也就是限定了若干点对不能相邻,求排列数。

      考虑容斥,钦定若干点对必然相邻,这个的方案数可以通过dp预处理出来,然后用生成函数多项式快速幂就可以简单的计算出来方案数。

      于是直接套个二项式反演上去就没了。

  • 相关阅读:
    班课2
    班课2
    班课1
    lecture 2
    lecture 1
    使用node的fs读取文件
    使用Node.js搭建一个本地服务器
    Node.js前言
    简述ES6其他的东西
    ES6异步操作Thunk、co和async
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12628786.html
Copyright © 2011-2022 走看看