lightoj 1253 - Misere Nim Nim博弈

来源:互联网 发布:手机淘宝 二手 编辑:程序博客网 时间:2024/04/28 23:33

给定n堆石子,双方轮流游戏,可以任取一堆的任意个,谁拿走最后一个谁输,A先手。

Nim博弈跑完发现如果都是1的结果刚好不对...

纯1的情况只能通过有多少堆来判断....

#include<bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N 100100int main(){    int t;    scanf("%d",&t);    for(int cas=1;cas<=t;cas++)    {        int n,ans=0,f=0,x;        scanf("%d",&n);        for(int i=0;i<n;i++)        {            scanf("%d",&x);            ans=ans^x;            if(x>1)                f=1;        }        if(f==0)        {            if(n%2)                printf("Case %d: Bob\n",cas);            else                printf("Case %d: Alice\n",cas);        }        else        {            if(ans==0)                printf("Case %d: Bob\n",cas);            else                printf("Case %d: Alice\n",cas);        }    }    return 0;}


0 0
原创粉丝点击