游戏描述:
桌上有n堆石子,游戏双方轮流取石子,每次只能从一堆中取出任意数目的石子,不能不取,取走最后一个石子者失败。
结论:
先手必胜,当且仅当:
①、所有堆的石子数都为1,且游戏的SG值为0。
②、存在堆的石子数大于1,且游戏的SG值不为0。
题目:
#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; }