码迷,mamicode.com
首页 > 其他好文 > 详细

CF353D Queue

时间:2016-04-13 02:17:04      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

思路好题

对于一个女孩,设前一个女孩运动时间为0,如果她在停止运动前能追上前面的女孩,则运动时间为ans+1;否则她一直在男生交换位置,运动时间为cnt,cnt为前面男生个数。则这个女孩的运动时间为max(ans+1,cnt)。最终答案为最后一个女孩运动时间。

看完题解的我内牛满面…






#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define F(i,j,n) for(int i=j;i<=n;i++)
#define D(i,j,n) for(int i=j;i>=n;i--)
#define ll long long
#define maxn 1000005
using namespace std;
int n,t=1,ans,cnt;
char s[maxn];
int main()
{
	scanf("%s",s+1);
	n=strlen(s+1);
	while (t<=n&&s[t]=='F') t++;
	F(i,t,n)
	{
		if (s[i]=='M') cnt++;
		else ans=max(ans+1,cnt);
	}
	printf("%d\n",ans);
	return 0;
}


CF353D Queue

标签:

原文地址:http://blog.csdn.net/aarongzk/article/details/51138652

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!