其他分享
首页 > 其他分享> > acw3700. 女士优先(贪心)

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;
}

标签:题意,女士优先,int,题解,交换,一位,程序员,acw3700,贪心
来源: https://www.cnblogs.com/wushansinger/p/15966823.html