题意:石头剪刀布,bot有一串字符,表示他要出什么,你需要事先确定你的出招方案,然后遍历bot的字符串,从\(i\)位置开始跑一个循环,每次跑都要记录你赢的次数贡献给\(sum\),现要求\(\frac{sum}{n}\)最大,求你的最佳处找方案.
题解:贪心,全输出bot出招次数最多的对应即可.
代码:
int t;
string s;
map<char,int> mp;
int main() {
ios::sync_with_stdio(false);cin.tie(0);
cin>>t;
while(t--){
cin>>s;
mp.clear();
for(int i=0;i<s.size();++i){
if(s[i]==‘R‘) mp[‘r‘]++;
else if(s[i]==‘S‘) mp[‘s‘]++;
else mp[‘p‘]++;
}
int mx=0;
for(auto w:mp) mx=max(mx,w.se);
if(mp[‘r‘]==mx){
for(int i=0;i<s.size();++i){
cout<<"P";
}
}
else if(mp[‘s‘]==mx){
for(int i=0;i<s.size();++i){
cout<<"R";
}
}
else{
for(int i=0;i<s.size();++i){
cout<<"S";
}
}
cout<<endl;
}
return 0;
}
Educational Codeforces Round 91 (Rated for Div. 2) B. Universal Solution (贪心)
原文:https://www.cnblogs.com/lr599909928/p/13322080.html