题解 | #寒冬信使#
寒冬信使
https://ac.nowcoder.com/acm/contest/11180/B
题目大意
给你一个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;
}