标签:
题意:
NIM题,问你第一个人有多少种取的方案
思路:
全部异或完后,然后让这个值分别异或每一个数
如果结果小于当前数,就说明可以从该堆中取走异或这个数这么多石子
ans就++
/* *********************************************** Author :devil Created Time :2016/5/29 11:31:46 ************************************************ */ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <assert.h> #include <map> #include <string> #include <cmath> #include <stdlib.h> using namespace std; const int N=1e6+7; int a[N]; int main() { //freopen("in.txt","r",stdin); int n; while(~scanf("%d",&n)&&n) { int p=0,ans=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); p^=a[i]; } for(int i=0;i<n;i++) if((p^a[i])<a[i]) ans++; printf("%d\n",ans); } return 0; }
HDU1850 Being a Good Boy in Spring Festival(NIM统计)
标签:
原文地址:http://www.cnblogs.com/d-e-v-i-l/p/5539115.html