zoukankan      html  css  js  c++  java
  • 1688 求逆序对

    1688 求逆序对

      时间限制: 1 s

     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
     
    题目描述 Description

    给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目

    数据范围:N<=105。Ai<=105。时间限制为1s。

    输入描述 Input Description

    第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。

    输出描述 Output Description

    所有逆序对总数.

    样例输入 Sample Input

    4

    3

    2

    3

    2

    样例输出 Sample Output

    3

     1 #include <cstdio>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 const int N = 1e5 + 10;
     6 
     7 int n;
     8 int a[N];
     9 int b[N];
    10 long long ans;
    11 
    12 void merge_sort(int l, int r)
    13 {
    14     if(l==r) return;
    15     int m = (l+r) / 2;
    16     merge_sort(l, m);
    17     merge_sort(m+1, r);
    18     int i = l, j = m+1, k = l;
    19     while(i<=m && j<=r)
    20         if(a[i]<= a[j]) b[k++] = a[i++];
    21         else ans += m-i+1, b[k++] = a[j++];
    22     for(; i<=m; b[k++] = a[i++]);
    23     for(; j<=r; b[k++] = a[j++]);
    24 
    25     for(i=l; i<=r; i++) a[i] = b[i];
    26 }
    27 int main()
    28 {
    29     scanf("%d",&n);
    30     for(int i=1; i<=n; i++) scanf("%d", &a[i]);
    31     merge_sort(1, n);
    32     printf("%lld
    ", ans);
    33     return 0;
    34 }
  • 相关阅读:
    Redis详解
    Linux常用命令
    sqlserver 游标写法
    Flask总结
    HTTPS协议
    Django REST framework 简介
    Cookie和session
    利用rest-framework编写逻辑关系
    vuex
    jQuery和Bootstrap的优点
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6816992.html
Copyright © 2011-2022 走看看