省選模擬56

2022-03-26 19:00:31 字數 583 閱讀 9342

對於這種取石子的題乙個經典結論就是先手必敗當且僅當所有堆的石子數異或和為0。

所以就有了乙個暴力的dp思路,$f[i][j][k]$表示當前列舉到第i堆石子,選取的石子堆數模d為j,異或和為k的方案數,轉移顯然。

然後發現題中給了乙個奇怪的條件,保證所有堆石子數總和不大,所以就不難想到給石子數排序,然後每次只轉移能夠得到的異或值,然後複雜度就合法了。

容斥套路題(?)。

考慮求出來兩個陣列,$f[i][j][k]$表示從$i$出發到$j$走了$k$步的方案數,$g[i][j][k]$表示從$i$出發到$j$走了$k$步且中途不經過$i$的方案數。

然後考慮容斥,首先可以容斥出$a[i][j][k]$表示從$i$到$j$並且中途不經過$j$的方案數。

然後繼續容斥可以得到$b[i][j][k]$表示從i到i中途不經過j的方案數。

然後繼續容斥就可以得到答案了。

首先可以發現,每一行的操作次數只和這一行上白色點個數的奇偶性有關。

然後發現,可以交換行列,不會影響最終的答案。

所以每個格仔根據所在行列只有4種情況,然後將這些行列移動一下就可以得到乙個等價的$2*2$矩陣,所以直接對於這個矩陣模擬就行了。

省選模擬56

題意 n堆石子,第 i 堆有 a i 個,可以刪除掉為d的倍數個數的石子堆,求後手必勝的刪除方案數。n 5e5,d 10,a i 1e6,sum limits n a i 1e7 首先是nim博弈的結論 存在後手必勝的充要條件為 a i 異或和為零 對於 n 50,a i 10000 設 f i j...

省選模擬56 題解

容易發現這個問題的 sg 值就是每堆的石子個數的異或和。問題是後手能贏,也就是求刪除 d 的倍數個石子,使得剩餘石子的異或和恰好為 0 的方案數。然後發現直接 dp 複雜度就是 o n d max a i 的。發現題面中給出了乙個很特殊的限制,所以考慮如何做到每次 o d a i 的轉移。容易發現給...

考試 省選56

直接全都wa爆了。t1博弈論模型,其實就是轉化成 xor 和為 0 我們考慮樸素的 dp dp i j k 設為前 i 個元素,去掉的元素個數 mod d 為 j xor 和為 k 的方案。暴力轉移即可。考慮最終答案是 dp n 0 0 我們降序排序 那麼如果 upbit a i 2 j 說明轉移過...