树状数组模板题、归并也行
树状数组,先查询树状数组内当前有多少个数比当前的数字大,然后再把数字更新上去即可。。
#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; }