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$,所以将二分省掉,直接暴力枚举即可。

  • 相关阅读:
    spring 源码解析(三)
    spring 源码解析(三)
    spring 源码解析(三)
    spring 源码解析(三) 容器的实现
    spring 源码解析(二) 3.修改编译生成,生成自定义版本。
    spring 源码解析(二) 1.开发环境,环境的搭建。
    思维-J
    思维-Ayoub's function
    图-D
    思维-Codeforces 1294D
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12819902.html
Copyright © 2011-2022 走看看