题解:CF2002B Removals Game
Magallan_forever · · 题解
简要说明题意:
有两个
题目分析
题解提到只要字符串不相同且不是互为逆序,Alice 必然获胜。下面进行简单的分析:
假设最后剩下的 Alice 必然获胜。
假设存在序列 Alice 只要先对 Bob 不可删除的 Bob 选择的数动刀,Bob必然不可能保证两数相同。
此外,对于存在不同且长度超过 Alice 只要尽可能删成前两种情况(如无脑删到只剩 Bob 只能跟着删你删的)。
是个有一定思维难度的题目。
但是代码说不上复杂:
#include<cstdio>
#include<algorithm>
using namespace std;
int a[300001],b[300001];
bool cnta[300001],cntb[300001];
int main(){
int T,n,ai,aj,bi,bj;
bool mark0,mark1;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=0;i<n;++i) scanf("%d",a+i);
for(int i=0;i<n;++i) scanf("%d",b+i);
mark0=true,mark1=true;
for(int i=0;i<n;++i){
if(a[i]^b[i]) mark0=false;
if(a[i]^b[n-i-1]) mark1=false;
}
printf(mark0||mark1?"Bob\n":"Alice\n");
}
return 0;
}