???这代码怎了0pt
查看原帖
???这代码怎了0pt
1023732
FlowerAccepted楼主2025/1/11 11:33

rt.WA?TLE?????蒟蒻求条QWQ
记录
code:

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int a[500005], t[500005];
long long ans;

void merge_sort(int a[], int l, int r) {
    if (l == r) {
        return;
    }
    int mid = (l + r) >> 1;
    merge_sort(a, l, mid);
    merge_sort(a, mid + 1, r);
    for (int i = 1, j = 1, k = mid + 1; i <= r; i ++) {
        if (j == mid + 1) {
            t[i] = a[k ++];
        } else if (k == r + 1) {
            t[i] = a[j ++];
            ans += k - mid - 1;
        } else if (a[j] <= a[k]) {
            t[i] = a[j ++];
            ans += k - mid - 1;
        } else {
            t[i] = a[k ++];
        }
    }
    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];
    }
    merge_sort(a, 1, n);
    cout << ans;
    return 0;
}

2025/1/11 11:33
加载中...