P4279 SHOI2008 小約翰的遊戲

2022-05-19 20:17:48 字數 553 閱讀 9472

我怎麼什麼都不會啊\(qaq\)博弈論怎麼和期望一樣玄學啊\(qaq\)

我們分幾種情況討論:

\(case1\):只有一堆且為1,那麼後手勝利

\(case2\):每一堆都是1,那麼只需要判斷奇偶性,奇數則先手敗,偶數則後手敗

\(case3\):只有一堆不是1,其餘堆都是1,那麼可以根據就行,先手可以選擇是拿完或是那得只剩乙個

\(case4\):一般情況,思考怎麼轉化成\(case\ 1-3\)

現在題意是說:給定k堆,先手想要自己去到最後一堆他就會勝利\((case3)\),這不就變成\(nim\)遊戲了嗎?

於是只需要把每一堆的權值異或起來即可

#includeusing namespace std;

int read()

while(c >= '0' && c <= '9') x = x * 10 + c - 48, c = getchar();

return x * f;

}int main()

return 0;

}

P4279 SHOI2008 小約翰的遊戲

傳送門 顯然的 anti sg 直接套上結論就行 當然也可以略證一下 1.如果石頭堆都只有乙個石頭,那麼堆數為偶數時先手必勝 2.如果某堆有多個石頭,那麼總 sg 不為 0 時先手必勝 考慮只要一堆有多個石頭時,先手可以拿到只剩乙個或者全部拿完,然後就變成 1.的情況並且先手可以隨意控制堆的奇偶,先...

P4246 SHOI2008 堵塞的交通

題意簡述 維護乙個 2 n 的網格圖的動態連通性 思路既然是動態連通性,那麼我們直接離線線段樹分治 可撤銷並查集 上面的做法太暴力了,我們考慮分析一些性質 注意到聯通的資訊是可以合併的,可以考慮使用線段樹維護 乙個想法是維護區間 左上 左下 到 右上 右下 的連通性 但這樣忽略了一種情況 1,1 1...

SHOI2008 小約翰的遊戲John

小約翰經常和他的哥哥玩乙個非常有趣的遊戲 桌子上有n堆石子,小約翰和他的哥哥輪流取石子,每個人取 的時候,可以隨意選擇一堆石子,在這堆石子中取走任意多的石子,但不能一粒石子也不取,我們規定取到最後一 粒石子的人算輸。小約翰相當固執,他堅持認為先取的人有很大的優勢,所以他總是先取石子,而他的哥哥就聰明...