题目大意

给你一个01串,如果一位是1,那么可以把当前位和上一位取反,两个人轮流取,取不了时败,问先手是否必胜


解题思路

把当前位和上一位取反可以看做是往前穿一,那么就是阶梯博弈


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 100100
using namespace std;
int T,n,ans;
char s[N];
int main()
{
	scanf("%d",&T);
	while(T--){
		scanf("%s",s+1);
		n=strlen(s+1);
		ans=0;
		for(int i=1;i<=n;i+=2)
			ans^=s[i]-48;
		if(ans)puts("T");
		else puts("X");
	}
	return 0;
}