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)$。