- 玄关求调
求逆序对数量
- @ 2025-8-28 18:40:18
// 求逆序对数量
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 100000 + 2047;
int n, a[N], b[N], c[N];
void uni() {
for (int i = 1; i <= n; i++) b[i] = a[i];
sort(b + 1, b + n + 1);
int tot = unique(b + 1, b + n + 1) - b - 1;
for (int i = 1; i <= n; i++) {
a[i] = lower_bound(b + 1, b + n + 1, a[i]) - b;
}
}
int low(int x) { return (-x) & x; }
void change(int i, int x) {
for (; i <= n; i += low(i))
c[i] += x;
a[i] += x;
}
int sum(int i) {
int ans = 0;
for (; i > 0; i -= low(i))
ans += c[i];
return ans;
}
int main()
{
return 0;
}
0 条评论
目前还没有评论...