POJ 1740 A New Stone Game(多堆博弈找规律)

传送门

//有n堆,AB轮流从n堆的一堆中移任意个,可以扔掉,也可以移给其他堆中的一堆
//最先移完的胜
//如果n堆中两两堆数目相等,那肯定是B胜
//但只要有非两两相同的,如xyz,A先,
//A可以从最多的那堆(z)移y-x个到x堆,yyp,最终移走p的一定是A
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int main()
{
    int n,a[105];
    while(scanf("%d",&n)&&n)
    {
        int aa,res=0,maxn=0;
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++)
        {
            scanf("%d",&aa);
            maxn=max(maxn,aa);
            a[aa]++;
        }
        for(int i=0;i<=maxn;i++)
        {
            if(a[i]%2==1)
            {
                res=1;
                break;
            }
        }
        printf("%d\n",res);
    }
    return 0;
}
posted @ 2016-03-01 23:20  &ATM  阅读(137)  评论(0编辑  收藏  举报
……