POJ 2234 Matches Game(直接的NIM)

来源:互联网 发布:mac美国官网价格 编辑:程序博客网 时间:2024/05/16 23:37
//简单直接的博弈论问题,两个人分别取n堆石子,谁取到最后一颗谁赢,SG(x)=x,直接异或即可#include<stdio.h>#define maxn 20+10int m;long number[maxn];int find_sg(int x)//SG函数{    return x;}int main(){    while(scanf("%d",&m)!=EOF)    {        for(int i=1;i<=m;i++)            scanf("%ld",&number[i]);        int ans;        if(m==1)            ans=1;        else        {            ans=find_sg(number[1])^find_sg(number[2]);            for(int i=3;i<=m;i++)                ans=ans^find_sg(number[i]);        }        if(ans==0)//若异或值为0,先手必败            printf("No\n");        else            printf("Yes\n");    }    return 0;}