zoukankan      html  css  js  c++  java
  • hdu 5119(2014北京)

    题意:

    随机选择一个数,如果后面有比他小的就进行交换,直到没有为止(算一轮)。求多少轮后为递增序列
    思路:

    倒着找,如果有比经过的最小数大的,ans+1


    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int a[1000005];
    
    int main()
    {
        int T,n;
        scanf("%d",&T);
        int cas = 1;
        while(T--)
        {
            scanf("%d",&n);
            for(int i = 1; i <= n; i++)
                scanf("%d",&a[i]);
            int tmin = 0x3f3f3f3f;
            int ans= 0;
            for(int i = n;i >= 1;i -- )
            {
                if(a[i] > tmin)
                    ans ++;
                tmin=min(tmin,a[i]);
            }
             printf("Case #%d: %d
    ",cas++,ans);
        }
        return 0;
    }
    

      

  • 相关阅读:
    面向过程
    生成器
    迭代器
    装饰器
    函数及嵌套
    字符编码与文件操作
    linux_ssh
    LNMP
    BZOJ 3238: [Ahoi2013]差异
    BZOJ 3998: [TJOI2015]弦论
  • 原文地址:https://www.cnblogs.com/Przz/p/5409729.html
Copyright © 2011-2022 走看看