7622:求排列的逆序数 树状数组

来源:互联网 发布:供应商数据分析 编辑:程序博客网 时间:2024/06/08 12:34

题库链接

树状数组求逆序对

#include<iostream>#include<cstdio>#include<queue>#include<set>#include<algorithm>#include<map>#include<cstring>#include<cmath>using namespace std;int v[100000+10];int n;int getsum(int x){int sum=0;while(x){sum+=v[x];x-=x&-x;}return sum;}void add(int x,int num){while(x<=n){v[x]+=num;x+=x&-x;}}int main(){long long sum=0;cin>>n;for(int i=0;i<n;i++){int num;cin>>num;sum+=i-getsum(num);add(num,1);}cout<<sum;return 0;}

原创粉丝点击