标签:new int 12px obj border game player out math
3 1 2 3 2 2 2 5 1 2 3 4 5
No Yes YesHintFor the third test case, the second player can move heaps with 4 and 5 objects out, so the nim-sum of the sizes of the left heaps is 1⊕2⊕3 = 0.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1110;
long long a[maxn], mp[maxn][maxn];
int gauss(int n)
{
int i, j, r, c, cnt;
for (c = cnt = 0; c < n; c++)
{
for (r = cnt; r < 63; r++)
{
if (mp[r][c])
break;
}
if (r < 63)
{
if (r != cnt)
{
for (i = 0; i < n; i++)
swap(mp[r][i], mp[cnt][i]);
}
for (i = cnt + 1; i < 63; i++)
{
if (mp[i][c])
{
for (j = 0; j < n; j++)
mp[i][j] ^= mp[cnt][j];
}
}
cnt++;
}
}
return n - cnt;
}
int main()
{
int c;
int n, i, j;
int vary;
scanf("%d", &c);
while (c--)
{
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%I64d", &a[i]);
for (i = 0; i < 63; i++)
{
for (j = 0; j < n; j++)
mp[i][j] = (a[j] >> i) & 1;
}
vary = gauss(n);
if(vary==0) printf("No\n");
else printf("Yes\n");
}
return 0;
}
hdu 5088 Revenge of Nim II(BestCoder Round #16)
标签:new int 12px obj border game player out math
原文地址:http://www.cnblogs.com/ljbguanli/p/6933101.html