求逆序对

【题目描述】

给定一个序列a1,a2,…,an

,如果存在i<j并且ai>aj

,那么我们称之为逆序对,求逆序对的数目。

【输入】

第一行为n

,表示序列长度,接下来的n行,第i+1行表示序列中的第i

个数。

【输出】

所有逆序对总数。

【输入样例】

4
3
2
3
2

【输出样例】

3

【提示】

N≤105,Ai≤105

#include<iostream>
using namespace std;
#define N 500005//数组长度
int a[N], t[N];
long long ct;//逆序数 
void mergeSort(int l, int r)
{
    if(l >= r)
        return;
    int mid = (l + r)/2;
    mergeSort(l, mid);
    mergeSort(mid+1, r);
    int ti = l, li = l, ri = mid+1;//li第一个段数组中的下标 ri第二段数组中的下标 ti临时数组中的下标
    while(li <= mid && ri <= r)
    {
        if(a[li] <= a[ri])
            t[ti++] = a[li++];
        else//如果a[ri] < a[li] 此时a[ri]与左侧数组剩余的mid-li+1个数字构成逆序对 
        {
            ct += mid-li+1;
            t[ti++] = a[ri++];
        }
    }
    while(li <= mid)
        t[ti++] = a[li++];
    while(ri <= r)
        t[ti++] = a[ri++];
    for(int i = l; i <= r; ++i)
        a[i] = t[i];
}
int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; ++i)
        cin >> a[i];
    mergeSort(1, n);
    cout << ct;
    return 0;
}

相关推荐

  1. 2024-02-22 12:44:01       49 阅读
  2. P1908

    2024-02-22 12:44:01       42 阅读
  3. 归并排序与

    2024-02-22 12:44:01       42 阅读
  4. Acwing---788.的数量

    2024-02-22 12:44:01       51 阅读
  5. 题解 归并排序

    2024-02-22 12:44:01       22 阅读
  6. c语言:后四位

    2024-02-22 12:44:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 12:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 12:44:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 12:44:01       82 阅读
  4. Python语言-面向对象

    2024-02-22 12:44:01       91 阅读

热门阅读

  1. Oracle普通用户启停JOB报错ORA 27486权限不足

    2024-02-22 12:44:01       50 阅读
  2. vue系列--图片通过鼠标滚轮放大缩小指令

    2024-02-22 12:44:01       48 阅读
  3. netty的TCP服务端和客户端实现

    2024-02-22 12:44:01       50 阅读
  4. 令牌颁发与管理服务

    2024-02-22 12:44:01       48 阅读
  5. Golang 并发 Channel的用法

    2024-02-22 12:44:01       35 阅读
  6. C#中的Async的异常处理

    2024-02-22 12:44:01       47 阅读
  7. k8s学习整理文档

    2024-02-22 12:44:01       41 阅读