P4279 SHOI2008 小約翰的遊戲

2022-05-19 08:28:34 字數 837 閱讀 3927

傳送門

顯然的 $anti-sg$ ,直接套上結論就行

當然也可以略證一下

$1.$如果石頭堆都只有乙個石頭,那麼堆數為偶數時先手必勝

$2.$如果某堆有多個石頭,那麼總 $sg$ 不為 $0$ 時先手必勝

考慮只要一堆有多個石頭時,先手可以拿到只剩乙個或者全部拿完,然後就變成 $1.$ 的情況並且先手可以隨意控制堆的奇偶,先手必勝

如果有多堆石頭且 $sg$ 值不為 $0$ 時,先手顯然可以拿成 $sg$ 為 $0$ 的情況,然後後手又不得不拿成 $sg$ 不為 $0$ 的情況...最後 $sg$ 不為 $0$ 的情況一定是只剩一堆有多個石頭,然後就到了 $2.$ 的情況

後手面對非 $1.2.$ 時必輸,所以當且僅當 $1.2.$ 其中一條滿足時,先手必勝

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;inline

intread()

while(ch>='

0'&&ch<='

9')

return x*f;

}int

t,n,a,now;

intmain()

if((!now&&mx<=1) || (now&&mx>1)) printf("

john\n");

else printf("

brother\n");

}return0;

}

P4279 SHOI2008 小約翰的遊戲

我怎麼什麼都不會啊 qaq 博弈論怎麼和期望一樣玄學啊 qaq 我們分幾種情況討論 case1 只有一堆且為1,那麼後手勝利 case2 每一堆都是1,那麼只需要判斷奇偶性,奇數則先手敗,偶數則後手敗 case3 只有一堆不是1,其餘堆都是1,那麼可以根據就行,先手可以選擇是拿完或是那得只剩乙個 c...

P4246 SHOI2008 堵塞的交通

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

SHOI2008 小約翰的遊戲John

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