CF353D Queue


题目传送门

思路:

既然队列里的男生不能主动调换位置,那我们何尝不只考虑女生呢?

题意中说女生只能与前一个男生交换,那么就让她一直换到第一个男生的最前面不就好了?

大模拟水题

代码:

#include<bits/stdc++.h> 
using namespace std;
string s;
int main(){
	cin>>s;//输入 
    int ans=0,men=0,len=s.size();//ans是需要移动的步数,men是当前女生前面的男生人数,len是此队列的长度
	for(int i=0;i<len;i++){//枚举每个人的操作
		if(s[i]=='M')men++;//男生:计数器+1 
		if(s[i]=='F'&&men>0)ans=max(ans+1,men);//女生:移动 
	}
	printf("%d\n",ans);//输出移动步数 
	return 0;//完美结束 
}

文章作者: alex_liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex_liu !
  目录