题目描述
题解
首先先手从中选出一个极长的子序列使它们的异或和=0,这就相当于是建立一个一个先手必败的Nim游戏。
然后后手如果再取出一个子序列就相当于是建立一个先手必胜的Nim游戏,这时候先手只需要将其变成必败的,让后手一直面对这一堆必败的Nim游戏就可以了。
如果先手不能选出一个子序列使它们的异或和=0,那么他建立的Nim游戏就是先手必胜的。即使后手也必须建立先手必胜的Nim游戏,但是由于先手面对的先手必胜的游戏一定为偶数个,而后手为奇数个,所以后手必胜。
代码
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define N 20
int T,n,cnt,a[N],b[N];
bool flag;