这道题估计大部分人都有一个疑惑点,或者是对尼姆博弈有一个疑惑点,就是为什么各个堆之间为什么要异或,其实这个点我也不知道,百度了很多的答案,也是没搞明白该怎样去理解比较好。所以求那些搞明白的大牛们讲解一下
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int main() {
int a[1010],i,n;
while(scanf("%d",&n)!=EOF && n) {
int ans=0,temp=0;
for(i=0; i<n; i++) {
scanf("%d",&a[i]);
temp^=a[i];
}
for(i=0; i<n; i++ ){
if((temp^a[i])<a[i]) ans++;
}
cout<<ans<<endl;;
}
return 0;
}