CF668 題解


C

可以考慮長度為 \(k\) 的區間右移一位造成的影響。

所以可以得到 \(s_i=s_{i+k}\) 這個結論,所以其實只要構造出第一個長度為 \(k\) 的區間即可。

對於第一個長度為 \(k\) 的區間上的每一位,判斷能填 \(0/1\) 中的哪些數,如果 \(0/1\) 中的一個超過了 \(\frac{k}{2}\) 或者存在矛盾就是無解。

D

考慮這個問題在鏈上的情況,如果說 Alice 追不上 Bob,大概是因為 \(db>2 \times da\),這樣的話 Bob 可以在 Alice 來了之后馬上跑路。

如果 \(db\) 可能會大於 \(n-1\),只要把 \(db\)\(n-1\)\(\min\) 就行了。

對於樹上的情況,只需要把 \(db\) 對樹的直徑取 \(\min\)

因為 Alice 先手,需要特判 Alice 可以一步追到 Bob 的情況。

E

如果只有一次詢問操作,考慮怎么做這個東西。

仔細思考一下,如果一個比較靠后的數當前沒有消掉,那么之后一定再也消不掉了。

所以最優策略就是每次取最后一個能消掉的,這里我只會用分塊去找到最后一個合法的位置。

對於詢問的限制,首先右端點可以直接用數據結構維護,其實左端點只要用類似掃描線的思想也是能做的。

F

如果 \(n\) 是偶數,可以選擇 First 並把 \(i\)\(i+n\) 分到一組去。

這樣的話得到的結果一定是 \(\frac{n(n+1)}{2}+kn \equiv \frac{n}{2} \pmod n\)

如果 \(n\) 是奇數,選擇 Second。

可以把給出的點對連上邊,再把 \(i\)\(i+n\) 連上邊,這樣就可以發現每個點的度數都是 \(2\),這個圖仍然是一個二分圖。

所以一定可以取出 \(\bmod n \equiv 0,1,2 \dots n-1\) 中每個數各一次,這個值 \(\bmod n \equiv \frac{n(n-1)}{2} \equiv 0\)

可以這個玩意 \(\bmod 2n\) 就不一定為 \(0\) 了,但是可以發現全部數的總和為 \(\frac{2n(2n+1)}{2} \equiv n \pmod {2n}\),所以只要取反就好了。

G

有點像網絡流,而且網格圖是二分圖然后看起來挺可做的。

然而問題是要么左右能流要么上下能流,一看就不是很好限制。

正解是把網格圖的邊看成網絡流中的點,網格圖的邊也是一個二分圖,限制轉化為兩種邊不能同時選,這個玩意就是個二分圖獨立集。

所以跑個網絡流就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM