逆序数
逆序数
https://ac.nowcoder.com/acm/problem/15163
树状数组模板题、归并也行
树状数组,先查询树状数组内当前有多少个数比当前的数字大,然后再把数字更新上去即可。。
#include<bits/stdc++.h>
using namespace std;
int c[1<<17];
int n;
void add(int x){
for(;x<=n;x+=x&-x) c[x]++;
}
int get(int x){
int ans=0;
for(;x;x-=x&-x) ans+=c[x];
return ans;
}
int main(){
cin>>n;
long long ans=0;
for(int i=1;i<=n;i++){
int x;cin>>x;
ans += get(n)-get(x);
add(x);
}
cout<<ans;
return 0;
}
查看5道真题和解析