CF競賽題目講解_CF850C(博弈論 + SG函數(shù) + 狀態(tài)壓縮)
2022-11-14 14:55 作者:Clayton_Zhou | 我要投稿
AC代碼
https://codeforces.com/contest/850/submission/180923520
題意:
輪到玩家時,他選擇一個數(shù)字p^k(其中p是質(zhì)數(shù),k是正整數(shù)),這樣p^k至少可以除掉列表中的一個數(shù)字。
對于列表中可被p^k整除的每個數(shù)字,稱其為x,玩家將刪除x并添加到列表中。
不能有效選擇p和k的玩家會輸。
題解:
博弈 + SG函數(shù) + 狀態(tài)壓縮
先考慮所有數(shù)字都是2的倍數(shù)的情況,可以很顯然的發(fā)現(xiàn)如果只有兩個2,這樣仍然是先手必勝,
顯然這樣并不是一個nim游戲,因為可以一下子“把兩堆石子取走”,
故而同時有多個2^k 和只有一個2^k 的情況是相同的。
?一個2和一個16的情況下, 可以考慮 2^(1-1)|2^(4-1)=9
?對于其他質(zhì)數(shù)因子,也可以類似考慮。
?對于每個質(zhì)數(shù)因子,分別計算其SG函數(shù)值, 再異或運算。
標(biāo)簽: