zoukankan      html  css  js  c++  java
  • hdu 5122(2014ACM/ICPC亚洲区北京站) K题 K.Bro Sorting

    传送门

    对于错想成lis的解法,提供一组反例
    1 3 4 2 5
    同时对于这次案例也可以观察出解法:
    对于每一个数,如果存在比它小的数在它后面,它势必需要移动,因为只能小的数无法向右移动,而且每一次移动都必然可以使得这个数到达正确位置,这是根据题意而得的

    #include<queue>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #define ll long long
    #define inf 1000000000LL
    #define mod 1000000007
    using namespace std;
    int read()
    {
        int x=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9')
        {
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9')
        {
            x=x*10+ch-'0';
            ch=getchar();
        }
        return x*f;
    }
    const int N=1e6+10;
    const int Max=1e6+5;
    int a[N],c[N];
    int lowbit(int x){
       return x&(-x);
    }
    void add(int x,int d){
        while(x<Max){
            c[x]+=d;
            x+=lowbit(x);
        }
    }
    int sum(int x){
        int ret=0;
        while(x>0){
            ret+=c[x];
            x-=lowbit(x);
        }
        return ret;
    }
    int main()
    {
        int T,ca=0;
        for(T=read();T;T--){
            int n=read(),x;
            memset(c,0,sizeof(c));
            for(int i=1;i<=n;i++){
                a[i]=read();
            }
            int ans=0;
            for(int i=n;i>=1;i--){
                if(sum(a[i]-1)>0) ans++;
                add(a[i],1);
            }
            printf("Case #%d: %d
    ",++ca,ans);
        }
        return 0;
    }
    
    
  • 相关阅读:
    人生长度的认识(死亡方格)
    如何才能更早的有自己的一点成就
    自制Jquery下拉框插件
    自定义Jquery 下拉框
    自定义Jquery分页插件
    Java 连接 mysql 数据库
    Git 操作分支
    CSS 循环动画效果。
    React 从0开始 消息传递
    MVC in Javascript
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/6780287.html
Copyright © 2011-2022 走看看