日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】

發(fā)布時(shí)間:2024/4/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1022: [SHOI2008]小約翰的游戲John

Time Limit:?1 Sec??Memory Limit:?162 MB
Submit:?2709??Solved:?1726
[Submit][Status][Discuss]

Description

  小約翰經(jīng)常和他的哥哥玩一個非常有趣的游戲:桌子上有n堆石子,小約翰和他的哥哥輪流取石子,每個人取
的時(shí)候,可以隨意選擇一堆石子,在這堆石子中取走任意多的石子,但不能一粒石子也不取,我們規(guī)定取到最后一
粒石子的人算輸。小約翰相當(dāng)固執(zhí),他堅(jiān)持認(rèn)為先取的人有很大的優(yōu)勢,所以他總是先取石子,而他的哥哥就聰明
多了,他從來沒有在游戲中犯過錯誤。小約翰一怒之前請你來做他的參謀。自然,你應(yīng)該先寫一個程序,預(yù)測一下
誰將獲得游戲的勝利。

Input

  本題的輸入由多組數(shù)據(jù)組成第一行包括一個整數(shù)T,表示輸入總共有T組數(shù)據(jù)(T≤500)。每組數(shù)據(jù)的第一行包
括一個整數(shù)N(N≤50),表示共有N堆石子,接下來有N個不超過5000的整數(shù),分別表示每堆石子的數(shù)目。

Output

  每組數(shù)據(jù)的輸出占一行,每行輸出一個單詞。如果約翰能贏得比賽,則輸出“John”,否則輸出“Brother”
,請注意單詞的大小寫。

Sample Input

2
3
3 5 1
1
1

Sample Output

John
Brother

HINT

Source

Seerc2007

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=1022

分析:

題目大意:反Nim游戲,即取走最后一個的人輸

首先狀態(tài)1:如果所有的堆都是1,那么堆數(shù)為偶先手必勝,否則先手必?cái)?/p>

然后狀態(tài)2:如果有兩個堆數(shù)量相同且不為1,那么后手擁有控場能力,即:

若先手拿走一堆,那么后手可以選擇將另一堆留下1個或者全拿走,使這兩堆最終只剩1個或0個;

若先手將一堆拿剩一個,那么后手可以選擇將另一堆留下一個讓先手拿或全拿走,使這兩堆最終只剩1個或0個;

若先手將一堆拿走一部分,那么后手可以將另一堆同樣拿走一部分,然后同上

狀態(tài)3:若Xor!=0 那么先手可以先拿走一部分讓Xor=0 然后同狀態(tài)2先手必勝 否則先手必?cái)?/p>

于是若所有堆全是1 Xor==0先手必勝 否則后手必勝

若有堆不是1 Xor==0后手必勝 否則先手必勝

下面給出AC代碼:

1 #include <stdio.h> 2 int T,n,x; 3 int main() 4 { 5 while(scanf("%d",&T)!=EOF) 6 { 7 while(T--) 8 { 9 int flag=0,sum=0; 10 scanf("%d",&n); 11 for(int i=1;i<=n;i++) 12 { 13 scanf("%d",&x); 14 sum^=x; 15 if(x!=1) 16 flag=1; 17 } 18 if((sum==0&&flag==0)||(sum!=0&&flag==1)) 19 printf("John\n"); 20 else 21 printf("Brother\n"); 22 } 23 } 24 return 0; 25 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/ECJTUACM-873284962/p/6956279.html

總結(jié)

以上是生活随笔為你收集整理的1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。