acw3700. 女士优先(贪心)

2022/3/5 6:17:30

本文主要是介绍acw3700. 女士优先(贪心),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题意:

程序员排队。假设现在的队列是这样的:MFM

从左往右,第一位是男程序员(Male),第二位是女程序员(Female),第三位是一位男程序员。

只要一位男程序员发现自己后面是一位女程序员,他就会和这位女程序员交换位置,这样的交换需要消耗一秒。

同一秒内可能会有多位男程序员和自己后面的女程序员交换位置。

问最少要多长时间,队伍不再变动。

思路:

acw题解

const int N = 1e5 + 5;
int n, cntM, wait, ans;
char s[N];
main()
{
    cin >> s + 1; n = strlen(s + 1);
    for(int i = 1; i <= n; i++)
        if(s[i] == 'M') cntM++, wait = max(wait-1, 0);
        else ans = wait + cntM, wait++;
    cout << ans;
}


这篇关于acw3700. 女士优先(贪心)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程