题解:P14059 【MX-X21-T4】[IAMOI R5] 使一颗心免于哀伤
Finner_forgeter · · 题解
P14059题解
首先,我是一个知更鸟厨。
题意描述: 给出一个圈,包含若干个
思路: 博弈论问题,如果思路搞懂的话代码是很好写的。首先,如果只有一个串的话,那么直接判断谁输谁赢,如果有两个串的话知更鸟小姐一定会赢(直接选取为
既然明白了思路,那么代码就可以写了。
AC代码:
#include<bits/stdc++.h>
#define finner_forgeter return
#define love 0
#define Robin ;
using namespace std;
int t,n;
int main(){
cin>>t;
while(t--){
cin>>n;
int sister=0,brother=0,s=0;
char a[100005];
memset(a,'#',sizeof(a));
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]=='1')
sister++;
else brother++;
if(a[i]==a[i-1])
continue;
s++;
}if(a[1]==a[n]&&s>1)s--;
if(s==1){
if(sister)cout<<"Sunday";
else cout<<"Robin";
}else if(s==2){
cout<<"Robin";
}else{
if(sister>brother)cout<<"Robin";
else if(sister<brother)cout<<"Sunday";
else {
cout<<"Sunday";
}
}cout<<endl;
}finner_forgeter love Robin
}
另外给出两个易错点:一是这是一个环,二是要注意:这是棋子数!