T1:
设$dp[i][j]$表示考虑到第$i$层,到每一个点路径的奇偶性状态为$j$的方案数。数组
可是转移是O(k^2)的。优化
把每一个点的出边集合压成一个二进制数,能够将转移复杂度优化到$O(k)$。spa
还能够进一步优化。it
预处理出$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)$。