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

    A. 人生

      首先考虑基础的dp定义,那么发现转移需要的系数只和dp是奇数的点的个数有关,所以将这个东西记录在dp状态中就行了。

      然后推一下dp转移,发现转移系数和奇数的点的个数没有关系,只与是否存在这样的点有关,所以用01来记录就可以了。

    B. 赢家(winner)

      考虑用总方案减去不合法的方案,也就是1号点能到达的点和2号点能到达的点没有交集。

      然后考虑计算出1和2能到达的点恰好为S的方案数。

      同样可以用容斥来处理,即枚举S的一个子集,然后暴力减去只能到达这个子集的方案。

      然后枚举两个集合统计答案即可。

    C. 黑红兔

      观察可以发现,必然存在一种最优解,使得相邻两个串长度是连续的。

      那么考虑倒过来dp,令$f[i]$表示i开始的最多的区间数。

      首先考虑对于每个$f$进行二分答案。

      然后只需要找到后面一个$j$,满足他的$dp>=mid-1$且lcp满足限制即可。

      用SA处理一下就是rank在一段连续区间,可以用主席树处理出来。

      优化的办法是$f[i]<=f[i+1]+1$,所以将二分省掉,直接暴力枚举即可。

  • 相关阅读:
    SimpleXML简单使用
    制作RSS供应源
    DOM方式操作XML
    Referer与图片防盗链
    PAT
    Margarite and the best present
    Petya and Origami
    Margarite and the best present
    Petya and Origami
    A/B
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12819902.html
Copyright © 2011-2022 走看看