标签:
Time Limit: 1000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
Input
Output
Sample Input
Sample Output
#include <iostream> using namespace std; int main() { int n; while(cin>>n&&n) { int a[105],ans=0,cnt=0; for(int i=0;i<n;i++) { cin>>a[i]; ans^=a[i]; } for(int i=0;i<n;i++) { if(a[i]>(ans^a[i]))//注意加括号 cnt++; } //以下这段话看不懂也没关系。 在本代码中 1.可以将cout 0那句去掉 2.可以在大于判断的时候加上等号 //但是两者不能同时用 因为有一个数的等于成立那么所有的数的等于都成立 即cnt=n 也就是异或为0先手必败的情况 //如果两者同时用会把先手必败的输出0的情况变为输出n 这样是错误的 但是单独用没问题 if(ans) cout<<cnt<<endl; else cout<<0<<endl; } return 0; }
HDU1850 Being a Good Boy in Spring Festival(博弈)
标签:
原文地址:http://www.cnblogs.com/Ritchie/p/5624410.html