#3588. [GESP202603 五级 C++] 第 20 题

[GESP202603 五级 C++] 第 20 题

在一个数组中,如果两个元素 a[i]a[j] 满足 i < ja[i] > a[j],则 a[i]a[j] 是一个逆序对。下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。

long long cnt=0;
void merge_count(vector<int>& a, int l, int m, int r){
    int i = l, j = m + 1;
    while(i <= m && j <= r) {
        if(a[i] <= a[j]) i++;
        else {
            cnt += (m -  i+ 1);
            j++;
        }
    }
}

{{ select(1) }}

  • 正确
  • 错误