分析
因为我们不知道AI出拳的顺序,所以我们需要从字符串 s s s 之中分解出各个字符出现的次数,然后要使得你的期望胜利次数最大,我们就要尽可能的去出那个出现次数最多的字符,取一个 max \max max,然后直接输出可以战胜那个字符的字符就可以了。
这里需要注意的是,如果每个字符出现次数都相同,那么,就直接输出字符串 s s s。
AC code
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=4;
int n;
string s;
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
while(n--) { // 多组数据
int a=0,b=0,c=0;
cin>>s;
for(int i=0;i<s.size();i++) { // 统计
if(s[i]=='R') a++;
else if(s[i]=='S') b++;
else c++;
}
if(a==b && b==c) for(int i=0;i<s.size();i++) cout<<s[i]; // 特判
else if(max(a,max(b,c))==a) for(int i=0;i<s.size();i++) cout<<"P";
else if(max(a,max(b,c))==b) for(int i=0;i<s.size();i++) cout<<"R";
else if(max(a,max(b,c))==c) for(int i=0;i<s.size();i++) cout<<"S";
cout<<endl;
}
return 0;
}
T h a n k s Thanks Thanks