bzoj 1022 博弈 Anti Nim(模板)

2021-07-25 10:50:07 字數 880 閱讀 4064

具體證明請見賈志豪大犇的2009** orz,這裡直接貼結論:

對於anti-sg 的:

1、如果所有子遊戲的sg異或和=0且所有子遊戲的sg<=1則先手必勝

2、如果所有子遊戲的sg異或和<>0且存在子遊戲的sg>1則先手必勝

兩種情況都不滿足的則先手必輸

**:

var

t,n,cnt,tot :longint;

i :longint;

a,sg :array[0..55] of longint;

begin

read(t);

while (t<>0) do

begin

dec(t);

read(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do sg[i]:=a[i];

tot:=0;

for i:=1 to n do if sg[i]>1 then inc(tot);

cnt:=0;

for i:=1 to n do cnt:=cnt xor sg[i];

if (cnt<>0) and (tot>0) then writeln('john') else

if (cnt=0) and (tot=0) then writeln('john') else writeln('brother');

end;

end.

——by eirlys

bzoj1022 小約翰的遊戲John

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

bzoj 4131 並行博弈(博弈)

time limit 10 sec memory limit 256 mb submit 42 solved 29 submit status discuss lyp和ld在乙個n m的棋盤上玩翻轉棋,遊戲棋盤座標假設為 x,y 1 x n,1 y m,這個遊戲的遊戲的的遊戲規則如下 每次可以操作座...

bzoj4131 並行博弈 博弈論

題目大意 題目鏈結。注釋 略。想法 我們發現無論如何操作都會使得 1,1 發生改變。所以單個 acg 的勝利條件就是 1,1 是否為黑色。如果為黑色那麼可以讓它變成白的。接下來無論對手如何操作都可以通過翻轉 1,1 使得進入對手回合。那麼多個 acg 相加就是取異或和即可。code include ...