考試 省選56

2022-03-26 02:11:02 字數 1204 閱讀 3528

直接全都wa爆了。

t1博弈論模型,其實就是轉化成\(xor\)和為\(0\)。

我們考慮樸素的\(dp\),\(dp[i][j][k]\)設為前\(i\)個元素,去掉的元素個數\(mod\ d\)為\(j\),\(xor\)和為\(k\)的方案。

暴力轉移即可。

考慮最終答案是\(dp[n][0][0]\)

我們降序排序\(\\)

那麼如果\(upbit(a_i)=2^j\),說明轉移過來的\(k\)必然是小於\(2^\)的。

這樣我們轉移的時候就可以指轉移\(2^\)個。

那麼複雜度就是\(o(d\sum\limits_^a_i)\)

t2我們考慮設:

\(f[i][j][k]\)為中途不經過\(i,j\),以\(i\)為起點\(j\)為終點走了\(k\)步的方案數。

\(g[i][j][k]\)為以\(i\)為起點\(j\)為終點走了\(k\)步的方案數。

\(h[i][j][k]\)為中途不經過\(i,j\),以\(i\)為起點\(i\)為終點走了\(k\)步的方案數。

然後我們發現\(g\)可以直接暴力算,\(f\)和\(h\)都可以由\(f,g,h\)分別容斥出來。

式子是這樣的。

\[g[i][j][k]=\sum\limits_g[i][t][k-1]

\]\[f[i][j][k]=g[i][j][k]-\left(\sum\limits_^f[i][j][d]g[j][j][k-d]+\sum\limits_^h[i][j][d]g[i][j][k-d]\right)

\]\[h[i][j][k]=g[i][j][k]-\left(\sum\limits_^h[i][j][d]g[i][i][k-d]+\sum\limits_^f[i][j][d]g[j][i][k-d]\right)

\]注意容斥的時候特判\(i==j\)的情況。

然後\(f\)就是答案陣列了。

t3首先發現設\(f[i]\)為行的1的個數的奇偶性,\(g[i]\)為列的。

那麼下一輪有:\(a[i][j]=f[i]\ xor\ g[j]\)

這樣我們發現可以交換行列而不改變答案。

那麼我們把矩形分成四塊,分別統計答案即可。

可以發現每次迭代,四塊的變化量是一樣大的。

那麼我們可以直接模擬這四塊,然後用\(map\)判一下當前矩形是否出現過了即可。

至於如何求出初始答案。

直接線段樹掃瞄線即可。

省選模擬56

對於這種取石子的題乙個經典結論就是先手必敗當且僅當所有堆的石子數異或和為0。所以就有了乙個暴力的dp思路,f i j k 表示當前列舉到第i堆石子,選取的石子堆數模d為j,異或和為k的方案數,轉移顯然。然後發現題中給了乙個奇怪的條件,保證所有堆石子數總和不大,所以就不難想到給石子數排序,然後每次只轉...

省選模擬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...

考試 省選96

t1 這個題就是考慮去大力分類討論。首先可以知道 k 3 的情況答案肯定是0.那麼分類討論 3,2,1,0 的情況。首先是 k 3 的情況。這個情況很簡單。首先 m 必須為3。就是我們考慮一下用總的方案去掉鈍角三角形的方案。那麼答案就是 ans binom n sum limits 1 i 這很簡單...