zoukankan      html  css  js  c++  java
  • codeforces 353D 递推 找规律

    题意:一组男生女生在排队,每秒钟所有排在女生左边的男生与她相邻的女生交换位置,求女生全部换到男生前面的时间。

    思路:

      解法一:队伍最前面的那些女生不需要交换,后面的女生有两种状态:畅通无阻,前一个女生还没到达指定位置时到达前一个女生的下一个位置(被阻),花费时间分别为前面的男生数与前一个女生的时间+1。故从左边开始递推一遍。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    char q[1000010];
    int main() {
        gets(q);
        int len=strlen(q);
        int pos=0,pre=0,res=0;
        while(pos<len && q[pos]=='F') pos++;
        for(int i=pos;i<len;i++) {
            if(q[i]=='M') pre++;
            else res=max(res+1,pre);
        }
        printf("%d
    ",res);
        return 0;
    }
  • 相关阅读:
    STL与泛型编程-练习2-GeekBand
    HashSet
    JAVA集合
    分布式锁1 Java常用技术方案
    JAVA 锁
    JAVA多线程二
    JAVA多线程一
    Redis pipeline and list
    mongo 安装
    Intersection of Two Arrays
  • 原文地址:https://www.cnblogs.com/LinesYao/p/5720398.html
Copyright © 2011-2022 走看看