山东省第八届ACM省赛A.Return of the Nim

来源:互联网 发布:数据分析入门书籍 编辑:程序博客网 时间:2024/05/29 07:00

题目
当n=2的时候是威佐夫博弈。其他时候都是nim博弈。(说起来多容易,呵呵哒)

#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int a[35];int main(){    int t;    while(~scanf("%d",&t))    {        int n;        while(t--)        {            scanf("%d",&n);            memset(a,0,sizeof a);            if(n==2)            {                int a,b;                scanf("%d %d",&a,&b);                int x=max(a,b);                int y=min(a,b);                int z=x-y;                int w=(int)(((sqrt(5)+1)/2)*z);                if(w==y)                    printf("Watson\n");                else printf("Sherlock\n");                continue;            }            int ans=0;            for(int i=0;i<n;i++)            {                scanf("%d",&a[i]);                ans^=a[i];            }            if(ans==0)                printf("Watson\n");            else printf("Sherlock\n");        }    }}
原创粉丝点击