具體證明請見賈志豪大犇的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 ...