1. 程式人生 > >POJ2234 Matches Game 尼姆博弈 博弈論

POJ2234 Matches Game 尼姆博弈 博弈論

none dbf hide 一個 lan while splay ont href

http://poj.org/problem?id=2234

尼姆博弈Nimm‘s Game 指的是這樣一個博弈遊戲:有任意堆物品,每堆物品的個數是任意的,雙方輪流從中取物品,每一次只能從一堆物品中取物品,最少取一件,取到最後一件物品的人獲勝。

結論:把每堆物品數全部異或起來,如果得到的值為0,那麽先手必敗,否則先手必勝。

直接判定即可。

技術分享圖片
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<iostream>
 6
#include<map> 7 using namespace std; 8 int m ; 9 int main(){ 10 while(~scanf("%d",&m)){ 11 int x=0,y=0; 12 for(int i=1;i<=m;i++){ 13 scanf("%d",&x); 14 y^=x; 15 } 16 if(y==0){ 17 printf("No\n"); 18 } 19 else
{ 20 printf("Yes\n"); 21 } 22 } 23 return 0; 24 }
View Code

POJ2234 Matches Game 尼姆博弈 博弈論