模拟测试109

T1:
  设$dp[i][j]$表示考虑到第$i$层,到每个点路径的奇偶性状态为$j$的方案数。

  但是转移是O(k^2)的。

  把每个点的出边集合压成一个二进制数,可以将转移复杂度优化到$O(k)$。

  还可以进一步优化。

  预处理出$f[i][j][0/1]$表示在第$i$层,状态为$j$时,边是否取反的方案数。

  可以用lowbit找到每个$j$的其中一位,然后递推即可。

  时间复杂度$O(m2^k)$。

T2:

  发现满足条件的对数很多,rand几组就出来了。

  可以用bitset优化匹配,多rand几组。

T3:

  考虑贪心。

  维护两个数组$f[i][j]$和$g[i][j]$表示距$i$距离为$j$有多少个节点,可以控制多少节点。

  每次消除距离为$k$和$k-1$的点,根节点消除所有点。

  时间复杂度$O(nk)$。

原文地址:https://www.cnblogs.com/hz-Rockstar/p/11833432.html