POJ 2299 树状数组求逆序数+离散化
来源:互联网 发布:c4dr16注册机mac 编辑:程序博客网 时间:2024/05/16 10:09
400ms+,速度很快啊……
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{ int value; int pos;}a[500005];int c[500005];int b[500005];int n;bool cmp(const node &a,const node &b){ return a.value<b.value;}int lowbit(int x){ return x&(-x);}int Sum(int end){ int sum=0; while(end>0) { sum+=c[end]; end=end-lowbit(end); } return sum;}void change(int i,int x){ while(i<=n) { c[i]=c[i]+x; i=i+lowbit(i); }}int main(){ while(scanf("%d",&n)&&n) { long long ans=0; for(int i=1;i<=n;i++) { c[i]=0; scanf("%d",&a[i].value); a[i].pos=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { b[a[i].pos]=i; } for(int i=1;i<=n;i++) { change(b[i],1); ans+=(i-Sum(b[i])); } printf("%lld\n",ans); } return 0;}
- POJ 2299 离散化+树状数组求逆序数
- POJ 2299 树状数组求逆序数+离散化
- poj 2299 离散化+树状数组求逆序数
- poj 2299(离散化+树状数组求逆序数)
- poj 2299 树状数组求逆序数+离散化
- POJ 2299 <离散化+树状数组求逆序数对>
- 树状数组 求逆序数 poj 2299 离散化
- poj 2299 树状数组(离散化)求逆序数
- 离散化+树状数组求逆序数
- 树状数组离散化求逆序数
- 树状数组+ 离散化 求逆序数
- POJ 2299 Ultra-QuickSort (树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- 树状数组 离散化 求逆序数POJ 2299Ultra-QuickSort解题报告
- POJ 2299 Ultra-QuickSort(树状数组+离散化—求逆序数)
- poj 2299 Ultra-QuickSort 树状数组求逆序数 离散化
- POJ 2533 求最长上升子序列长度 非DP 实现
- 设计模式之命令模式
- jquery
- android 卸载SD卡后图库读取不到内部存储卡的图片
- bitmap与桶方式对1000万数据进行排序
- POJ 2299 树状数组求逆序数+离散化
- Thread1:Program received signal
- 代码备忘:常用SQL
- 内存静态分配和动态分配的区别
- informatica利用ant发送邮件
- Spring Ioc和Aop原理
- cocos2d-x中的计时器schedule
- JFreeChart logoJava图表 JFreeChart
- 正则判断邮箱