树状数组求逆序对数板子
2016-11-10 15:55
344 查看
#include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cstring> #include<queue> #include<stack> #include<set> #include<map> #include<cmath> #include<iomanip> #define debug(x) cerr<<#x<<"="<<x<<endl using namespace std; typedef pair<int,int> pii; typedef long long ll; const int INF = 0x7f7f7f7f; const ll llINF = 0x7fffffffff; inline int init() { int now=0,ju=1;char c;bool flag=false; while(1) { c=getchar(); if(c=='-')ju=-1; else if(c>='0'&&c<='9') { now=now*10+c-'0'; flag=true; } else if(flag)return now*ju; } } inline long long llinit() { long long now=0,ju=1;char c;bool flag=false; while(1) { c=getchar(); if(c=='-')ju=-1; else if(c>='0'&&c<='9') { now=now*10+c-'0'; flag=true; } else if(flag)return now*ju; } } struct node { int v,index; }p[510000]; int lowbit(int x) { return x&(-x); } int a[510000]; int n; int b[500010]; bool cmp(node a,node b) { return a.v<b.v; } int getsum(int x) { int tmp=x,tot=0; while(x) { tot+=b[x]; x-=lowbit(x); } return tot; } void build(int x) { int tmp=x; for(;tmp+=lowbit(tmp);tmp<=n) { b[tmp]+=p[x].v; } } void ins(int x,int v) { for(int i=x;i<=n;i+=lowbit(i)) { b[i]+=v; } } int main() { int ans=0; n=init(); for(int i=1;i<=n;i++) { p[i].index=i; p[i].v=init(); } sort(p+1,p+1+n,cmp); for(int i=1;i<=n;i++) { a[p[i].index]=i; } for(int i=1;i<=n;i++) { ins(a[i],1); ans+=i-getsum(a[i]); } printf("%d\n",ans); return 0; }
相关文章推荐
- POJ 2299 Ultra-QuickSort 【归并排序 || 树状数组求逆序对数】
- HRBUST - 2224 逆序对数(树状数组)
- 树状数组求逆序对数
- SGU 180-Inversions(树状数组离散化求逆序对数)
- 树状数组与逆序对数
- poj 2299 树状数组求逆序对数+离散化
- 蓝桥杯 历届试题 小朋友排队(归并,树状数组求逆序对数)
- 离散化+树状数组 求逆序对数
- POJ 2299 利用树状数组求逆序对数
- poj2299 B - Ultra-QuickSort(线段树与树状数组求逆序对数)
- 2789: [Poi2012]Letters (树状数组求逆序对数)
- 树状数组求逆序对数
- Ultra-QuickSort(树状数组求逆序对数)
- POJ-2299 Ultra-QuickSort (树状数组 离散 求逆序对数)
- poj2299 Ultra-QuickSort&&NYOJ117 求逆序数 (树状数组求逆序对数+离散化)+(归并排序)
- 【BestCoder Round 65C】【树状数组 动态查找第k大 O(nlogn)】ZYB's Premutation 告诉你前i个数中的逆序对数让你还原全排列
- 用树状数组求逆序对数(poj2299)
- HDU 4911 Inversion(树状数组求逆序对数 + 数据离散化)
- (POJ 2299)Ultra-QuickSort 树状数组求逆序对数 + 离散化
- 树状数组板子hdu1166