zoukankan      html  css  js  c++  java
  • 娘的,自己的求逆序对模板又不好使了。。。。。。。。

    #include<stdio.h>
    
    long long cnt;
    long long  a[500001],t[500001];
    
    void merge(long long *a,long long *t,int l,int m,int r)
    {
        int p = l;
        int q = m+1;
        int k = p;
        while(p <= m||q <= r)
        {
            if(q > r||(p <= m&&a[p] <= a[q]))
                t[k++] = a[p++];
            else
            {
                cnt += m-p+1;
                t[k++]=a[q++];
            }
        }
        for(int i = l; i <= r; i++)a[i]=t[i];
    }
    void mergesort(long long *a,long long *t,int l,int r)
    {
        if(r > l)
        {
            int m = (l+r)/2;
            mergesort(a,t,l,m);
            mergesort(a,t,m+1,r);
            merge(a,t,l,m,r);
        }
    }
    int main()
    {
        int n;
        while(~scanf("%d", &n))
        {
            if(n==0)
                break;
            cnt = 0;
            for(int i = 0; i < n; i++)
                scanf("%lld", &a[i]);
            mergesort(a,t,0,n-1);
            printf("%lld
    ", cnt);
        }
        return 0;
    }
  • 相关阅读:
    meta属性
    博客
    概念术语
    装饰器与生成器
    Linux基础
    线程
    网络编程之socket
    网络编程之网络基础部分

    内置函数(max,min,zip)及文件处理
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/5017383.html
Copyright © 2011-2022 走看看