Codeforces Round #557 題解【更完了】


Codeforces Round #557 題解

掉分快樂


CF1161A Hide and Seek

Alice和Bob在玩捉♂迷♂藏,有\(n\)個格子,Bob會檢查\(k\)次,第\(i\)次檢查第\(x_i\)個格子,如果Alice在這個格子就輸了。Alice一開始會在一個格子,可以在Bob檢查過一次后向一個相鄰的格子移動(整局游戲只能用一次)。求Alice有多少種方案贏。

兩個方案相同當且僅當Bob檢查之前Alice的位置Bob做完所有檢查之后Alice的位置都相同。

cao,sb閱讀題。。。

直接枚舉方案判斷即可

https://codeforces.com/contest/1161/submission/53750223

CF1161B Chladni Figure

有一個圓形光碟,圓上均勻放着\(n\)個點。一些點之間有連邊。

問這個光碟是否可以旋轉一定角度和自己相等。(顯然不能是360度)

kao我是sb這都不會了。。。

對一個角度暴力判斷是\(O(n)\)的,然后可能的角度肯定是\(n\)的約數就做完了。。

https://codeforces.com/contest/1161/submission/53768643

CF1161C Thanos Nim

取石子游戲,每次選擇\(n/2\)堆取任意數量石子,不能操作者輸。

(此題我還是不知道是啥意思,"They can remove a different number of stones from the piles in a single turn"這句話太鬼了)

顯然的可以知道,如果有人取完一堆石頭這個人就輸了。

如果最小值的數量小於等於\(n/2\)則Alice贏,否則Bob贏。

如果現在在必勝態,就有\(\geq n/2\)個石子嚴格大於當前最小值,將它們減到最小值,就到達了必敗態。

如果是必敗態,至少會取到一個最小值的堆減小最小值,那么新的最小值數量最多也就\(n/2\)個。

https://codeforces.com/contest/1161/submission/53769976

CF1161D Palindrome XOR

有一個數字串\(s\),由01?組成,串長為\(n\),第0位是1。你要取兩個數\(a,b\),滿足以下條件:

  • \(0<a<b<2^n\)
  • \(a\)\(b\)去掉前導\(0\)之后是回文數字
  • \(a\text{ xor }b\)的二進制表示與給定的數字串匹配。?可以匹配0101只能匹配對應的數字。

由只有0和1可以想到圖的染色。

因為\(s\)保證了第0位是1,那么顯然\(a\)第0位是0,\(b\)第0位是1,b的長度就一定是\(n\)了。枚舉\(a\)的長度\(l\),建一張圖。對\(a,b\)每一位都建一個點,設為\(A_i,B_i\),再建一個\(I\)點表示\(0\)

點的顏色只有\(0,1\)兩種,邊有權值\(0\)\(1\),意義是連的兩個點顏色相等/不等。

顯然連邊滿足條件。第一個條件已經滿足了,再看第二個條件,對於\(a\)只需要對所有滿足條件的\(i,j\)連邊\((A_i,A_j,0)\)即可,\(b\)一樣。

第三個條件也很好滿足,將對應位置的\(A_i,B_i\)連邊\((A_i,B_i,s_i)\)即可。如果\(s_i\)?不需要連邊,如果\(A_i\)不存在就是\(0\),向\(I\)連邊。

還有,因為第一位一定是是\(1\),所以連邊\((B_1,I,1),(A_{n-lena+1},I,1)\)

對整個圖進行染色,如果可以染色,設聯通塊數量是\(C\),答案加上\(2^{C-1}\),因為\(I\)一定取\(0\),剩下的聯通塊可以任意交換\(0,1\)

https://codeforces.com/contest/1147/submission/53788363

CF1161E Rainbow Coins

交互題

\(n\)個硬幣,每個硬幣有3種可能顏色。

你可以拿出兩個硬幣詢問顏色是否相等。

你每次可以同時詢問若干對硬幣,但是一次詢問中不能有硬幣被詢問過2次。

最后輸出三組數,每一組里的硬幣顏色應該相同。

最多詢問7次。(一次可以同時詢問多組)

首先詢問兩次,第一次詢問\((2i-1,2i)(i\geq 1)\),第二次詢問\((2i,2i+1),\cdots(i\geq 1)\),相鄰的兩個如果相同就縮起來,這樣序列相鄰兩個都不同了。

然后在縮完以后的序列上詢問兩次,都詢問\((i,i+2)(i\geq 1)\),兩次可以問完。通過這個可以求出\(last_i\)表示\(i\)\(i-2\)顏色是否相等。

然后就可以遞推一遍求出答案了。前兩塊顏色分別是0,1,然后遞推到塊\(i\)時,如果\(lst_i=1\),那么\(col_i=col_{i-2}\),否則因為\(col_i\neq col_{i-1},col_i\neq col_{i-2}\)\(i\)的顏色還是唯一確定的。

https://codeforces.com/contest/1161/submission/53793188

CF1161F Zigzag Game

有一個二分圖,左右各\(n\)個點,邊有權值。alice和bob在上面玩游戲,alice先選擇“增加”或者“減少”,bob會選擇剩下的,然后alice選一個開始點,雙方輪流在二分圖上移動,bob先任意移動一步,然后如果alice選了增加,alice移動的邊較上次必須嚴格更大,bob同理。顯然無法移動就輸了。而且不能走到以前走到過的點。你要和judger玩這個游戲,你先選則玩alice還是bob,然后玩游戲,顯然你要贏。

因為zsy太強了,bob是實際意義上的先手,當然選bob了。(而且樣例2說明了選alice可能直接暴斃)

還是因為zsy太強了,在二分圖上的博弈要先找一個匹配,每次直接走匹配上的邊。

假設Alice選了“增加”(否則取反所有邊權)並選一個左邊的點開始。如果有連續的三步\(a\rightarrow b\rightarrow c\rightarrow d\),且\(a,c\)在左邊,\(b,d\)在右邊,那么\(a\rightarrow b,c\rightarrow d\)是bob走的,\(b\rightarrow c\)是alice走的。因為移動的“增加”“減少”限制,我們需要滿足\(W_{a,b}<W_{b,c},W_{b,c}>W_{c,d}\)

還是因為zsy太強了,這是一個穩定婚姻問題,左邊點對於右邊點的權值是邊權,右邊對於左邊點的是邊權相反數。

https://codeforces.com/contest/1161/submission/53810373


免責聲明!

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



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