ACM模版
博弈论,Nim 游戏,不过最后要求输出想赢的话,第一步的方案数,这个也不难搞,就是判断最开始哪一堆可以取,然后使局面达成奇异局。具体看代码吧,代码很简单,关键是不容易想到。博弈论十分绕得人。
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 111;
int n;
int ans, cot;
int a[MAXN];
int main(int argc, const char * argv[])
{
while (cin >> n && n)
{
ans = 0;
cot = 0;
memset(a, 0, sizeof(a));
for (int i = 0; i < n; i++)
{
cin >> a[i];
ans ^= a[i];
}
if (ans == 0)
{
puts("0");
}
else
{
for (int i = 0; i < n; i++)
{
int k = ans ^ a[i];
if (k < a[i])
{
cot++;
}
}
cout << cot << '\n';
}
}
return 0;
}