5538.回文游戏

题目链接:https://www.acwing.com/problem/content/description/5541/

题意:

给定一个字符串,每次可以取出回文整数级别的石子,问谁先赢

思路:

博弈猜猜题,容易知道s是回文或者小于10,先手必赢

等于10,先手必输

因此,如果当给的数是10的倍数时,后手可以通过若干操作将数字变为10留给先手

故,只要不是10的倍数,先手必赢

反之先手必输

#include<bits/stdc++.h>
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define pb push_back
#define endl "\n"
#define fi first
#define se second
//#pragma GCC optimize(3)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef __int128 lll;
typedef pair<int,int> pii;
const int inf=0x3f3f3f3f;
const ll llmax=LLONG_MAX;
const int maxn=1e5+5;
const int mod=1e9+7;

bool ok(string s){
	int len=s.size();
	for(int i=0;i<len/2;i++){
		if(s[i]!=s[len-i-1])return false;
	}
	return true;
}
void solve(){

	int t;cin>>t;
	while(t--){
		string s;cin>>s;
		if(ok(s)){
			cout<<'B'<<endl;
		}else{
			int len=s.size();
			if(s[len-1]=='0'){
				cout<<"E"<<endl;
			}else{
				cout<<"B"<<endl;
			}
		}
	}
}

signed main()
{
	ios::sync_with_stdio(false),cin.tie(0);
	int T=1;
	
	while(T--){
	solve();
	}
	
	return 0;
}


posted @ 2025-03-05 14:50  Marinaco  阅读(18)  评论(0)    收藏  举报
//雪花飘落效果