• HDU 4911


    http://acm.hdu.edu.cn/showproblem.php?pid=4911

    一场多校的签到题,树状数组离散化求逆序数

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std ;
    typedef __int64 ll ;
    int n,k ;
    
    int tree[100005],b[100005] ;
    struct node
    {
        int num,id ;
    }a[100005] ;
    
    int lowbit(int x){return x&(-x) ;}
    
    void update(int i,int x)
    {
        while(i<=n)
        {
            tree[i]+=x ;
            i+=lowbit(i) ;
        }
    }
    
    int sum(int i)
    {
        int res=0 ;
        while(i>0)
        {
            res+=tree[i] ;
            i-=lowbit(i) ;
        }
        return res ;
    }
    int cmp(node aa,node bb)
    {
        return aa.num<bb.num ;
    }
    int main()
    {
        ll ans ;
        while(~scanf("%d%d",&n,&k))
        {
            for(int i=1 ;i<=n ;i++)
            {
                scanf("%d",&a[i].num) ;
                a[i].id=i ;
            }
            memset(tree,0,sizeof(tree)) ;
            memset(b,0,sizeof(tree)) ;
            sort(a+1,a+n+1,cmp) ;
            b[a[1].id]=1 ;
            for(int i=2 ;i<=n ;i++)
            {
                if(a[i].num==a[i-1].num)b[a[i].id]=b[a[i-1].id] ;
                else b[a[i].id]=i ;
            }
            ans=0 ;
            for(int i=1 ;i<=n ;i++)
            {
                update(b[i],1) ;
                ans+=sum(n)-sum(b[i]) ;
            }
            printf("%I64d
    ",ans-k>0?ans-k:0) ;
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    k8s前期部署准备
    树莓派安装Gitlab-runner
    GitLab CI/CD 报错
    测试
    LVS结合keepalive
    LVS实现负载均衡安装配置详解
    LVS实现负载均衡原理
    私有仓库 gitlab 部署笔记
    Docker 案例: 在容器中部署静态网站
    docker 容器的启动方式
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/3968979.html
Copyright © 2020-2023  润新知