小約翰經常和他的哥哥玩乙個非常有趣的遊戲:桌子上有n堆石子,小約翰和他的哥哥輪流取石子,每個人取
的時候,可以隨意選擇一堆石子,在這堆石子中取走任意多的石子,但不能一粒石子也不取,我們規定取到最後一
粒石子的人算輸。小約翰相當固執,他堅持認為先取的人有很大的優勢,所以他總是先取石子,而他的哥哥就聰明
多了,他從來沒有在遊戲中犯過錯誤。小約翰一怒之前請你來做他的參謀。自然,你應該先寫乙個程式,**一下
誰將獲得遊戲的勝利。
本題的輸入由多組資料組成第一行包括乙個整數t,表示輸入總共有t組資料(t≤500)。每組資料的第一行包
括乙個整數n(n≤50),表示共有n堆石子,接下來有n個不超過5000的整數,分別表示每堆石子的數目。
每組資料的輸出佔一行,每行輸出乙個單詞。如果約翰能贏得比賽,則輸出「john」,否則輸出「brother」
,請注意單詞的大小寫。
2 3
3 5 1 1 1
john
brother
anti-nim遊戲(反nim遊戲)
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7int
cnt,ans,n;
8int
main()
9 21
if (cnt==0&&ans==0
)22 cout<<"
john\n";
23else
if (cnt>=1&&ans)
24 cout<<"
john\n";
25else cout<<"
brother\n";
26}27 }
SHOI2008小約翰的遊戲John
time limit 1 sec memory limit 162 mb submit 1139 solved 701 submit status 小約翰經常和他的哥哥玩乙個非常有趣的遊戲 桌子上有n堆石子,小約翰和他的哥哥輪流取石子,每個人取的時候,可以隨意選擇一堆石子,在這堆石子中取走任意多的石...
P4279 SHOI2008 小約翰的遊戲
傳送門 顯然的 anti sg 直接套上結論就行 當然也可以略證一下 1.如果石頭堆都只有乙個石頭,那麼堆數為偶數時先手必勝 2.如果某堆有多個石頭,那麼總 sg 不為 0 時先手必勝 考慮只要一堆有多個石頭時,先手可以拿到只剩乙個或者全部拿完,然後就變成 1.的情況並且先手可以隨意控制堆的奇偶,先...
P4279 SHOI2008 小約翰的遊戲
我怎麼什麼都不會啊 qaq 博弈論怎麼和期望一樣玄學啊 qaq 我們分幾種情況討論 case1 只有一堆且為1,那麼後手勝利 case2 每一堆都是1,那麼只需要判斷奇偶性,奇數則先手敗,偶數則後手敗 case3 只有一堆不是1,其餘堆都是1,那麼可以根據就行,先手可以選擇是拿完或是那得只剩乙個 c...