P10187 [USACO24FEB] Palindrome Game B 题解
不难发现所有整除
因为
假设
- 当
x<n<x+10 时,因为1,2,3,4,5,6,7,8,9 都是回文数,所以先手可以取走任意的在1 到9 之间的数量的石子。此时先手必能一次将n 变为x 。而根据假设,x 整除10 ,是必输局面。所以当x<n<x+10 时,先手可以取一次将局面变成必输局面,接下来后手怎么取都会输,所以先手赢。 - 当
n=x+10 时,因为根据假设,所有小于n 的不整除10 的数是必胜的,那么先手要是取完之后剩下的n 不整除10 ,后手就会有必胜策略,先手就输了。然而,因为所有整除10 的正整数都不是回文数,所以先手不可能取走一个整除10 的数,从而剩下的局面就必然不整除10 。因此,此时先手是必输的。
现在就成功证明了“若
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int t;cin>>t;while(t--){
string s;cin>>s;
if(s.back()=='0')cout<<"E\n";
else cout<<"B\n";
}
return 0;
}