SHOI2008 小約翰的遊戲John

2022-05-10 22:34:43 字數 904 閱讀 8759

小約翰經常和他的哥哥玩乙個非常有趣的遊戲:桌子上有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 #include6

using

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...