anti-nim 游戏

游戏描述

桌上有n堆石子,游戏双方轮流取石子,每次只能从一堆中取出任意数目的石子,不能不取,取走最后一个石子者失败。


结论

先手必胜,当且仅当:

①、所有堆的石子数都为1,且游戏的SG值为0

②、存在堆的石子数大于1,且游戏的SG值不为0 


题目

HDU2509 Be the Winner

#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
     int sum,t,a[110],i;
     while(~scanf("%d",&t)){
        sum=0;
        for(i=0;i<t;i++){
            scanf("%d",&a[i]);
            sum+=a[i];
            }
            //cout<<t<<" "<<sum<<endl;
            if(sum>t)
            printf("No
");
            else
            printf("Yes
");

    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/solvit/p/9787018.html