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