求处于必胜状态有多少种走法。
if( (g[i]^ans) <= g[i]) num++; //这步判断很巧妙
//
// main.cpp
// poj2975
//
// Created by New_Life on 16/8/12.
// Copyright © 2016年 chenhuan001. All rights reserved.
// #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; int g[]; int main(int argc, const char * argv[]) {
int n;
while(cin>>n && n!=)
{
int mark[];
memset(mark,,sizeof(mark));
int ans = ;
for(int i=;i<n;i++)
{
scanf("%d",g+i);
ans ^= g[i];
}
if(ans == )
{
printf("0\n");
continue;
}
for(int i=;i<;i++)
{
if( ((<<i)&ans)!= ) mark[i] = ;
}
int num = ;
for(int i=;i<n;i++) if( (g[i]^ans) <= g[i]) num++;
printf("%d\n",num);
} return ;
}