HDU(1850) Being a Good Boy in Spring Festival (博弈)

/*
 每一堆的数值与ans相异或,所得的结果就是这一堆可以取的数量。
 但是,如要这一堆数量没有这么多,就不可以这么取
 异或运算本身就是互逆运算
 */
#include <iostream>
using namespace std;
int value[101];
int main (){
    int n,sum,count,i;
    while (cin>>n && n){
        sum=0;
        for (i=0;i<n;i++){
            cin>>value[i];
            sum^=value[i];
        }
        count=0;
        for (i=0;i<n;i++){
            sum^=value[i];
            if (value[i]>sum) count++;
            sum^=value[i];
        }
        cout<<count<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/Roly/p/3079749.html