【POJ】【P2299】【Ultra-QuickSort】【题解】【求逆序对】
来源:互联网 发布:变脸视频是什么软件 编辑:程序博客网 时间:2024/05/10 11:23
传送门:http://poj.org/problem?id=2299
题意:求逆序对数
题解:离散化+树状数组求逆序对
1.其实这道题还可以用归并排序写,蒟蒻还是觉得树状数组好些一点……
2.离散化,是因为数据范围给到了999999999,数组开不出来,于是把每个数建立一个映射,通常就用排序后的index做映射离散化
3.n^2算法是冒泡排序,优化成为归并排序,或者枚举每个数在位置和数值都比它小的个数,求和可以用树状数组优化为nlogn
/*ID:iamzkyOJ:POJIndex:2299Language:C++*/#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include<algorithm>using namespace std;struct num{int X,Y;};bool cmp(num a,num b){return a.X<b.X;}num a[500010];//原数组 int b[500010];//离散后的数组 int d[500010];//bit数组 int n;inline int lowbit(int x){return x&(-x);}int get(int x){int s=0;while(x){s+=d[x];x-=lowbit(x);}return s;}void updata(int x){while(x<=n){d[x]++;x+=lowbit(x);}}int main(){int i;while(cin>>n){if(!n)break;for(i=1;i<=n;i++){cin>>a[i].X;a[i].Y=i;}sort(a+1,a+1+n,cmp);for(i=1;i<=n;i++){b[a[i].Y]=i;//离散化,自己好好想想为什么 }memset(d,0,sizeof(d));//别忘了清空哦,蒟蒻因为它WA了3次 long long ans=0;for(i=1;i<=n;i++){updata(b[i]);ans+=(i-get(b[i]));}cout<<ans<<endl;}return 0;}
0 0
- 【POJ】【P2299】【Ultra-QuickSort】【题解】【求逆序对】
- POJ 2299 Ultra-QuickSort(求逆序对)
- poj 2299 Ultra-QuickSort 求逆序对
- poj 2299 Ultra-QuickSort(求逆序对)
- 求逆序对——Ultra-QuickSort 题解解析
- poj 2299 Ultra-QuickSort(求逆序对)&& poj 1804
- poj 2299 Ultra-QuickSort(归并排序求逆序对)
- poj 2299 Ultra-QuickSort(fenwick树求逆序对)
- POJ 2299 Ultra-QuickSort 快速排序求逆序对
- POJ 2299 Ultra-QuickSort(树状数组求逆序对)
- POJ-2299Ultra-QuickSort(BIT|归并排序求逆序对)
- POJ 2299 Ultra-QuickSort 模板 求逆序对
- POJ 2299 Ultra-QuickSort (求逆序数)
- poj2299(Ultra-QuickSort)求逆序对
- poj 2299 Ultra-QuickSort(逆序对)
- POJ 2299 - Ultra-QuickSort 统计逆序对
- poj 2299 Ultra-QuickSort 求逆序对,树状数组和归并排序
- POJ 题目2299 Ultra-QuickSort(树状数组求逆序对)
- 一种中文文本的快速分词方法(一)(未完待续)
- ADT(eclipse) :the user operation is waiting for
- IDV软件相关中英文对照
- GoLang之搭建Web服务器
- Subsets II
- 【POJ】【P2299】【Ultra-QuickSort】【题解】【求逆序对】
- 万圣节派对
- 10大优秀的移动Web应用程序开发框架推荐
- codeforces Way Too Long Words
- 不是冤家不聚首
- 書劍恩仇錄 (無線電視翡翠台版本) - 演員表
- Vmware Workstation 8.0.6&Redhat Enterprise Linux 6.4下安装yum工具及g++ 4.4.7
- linux内核升级后如何删除旧的内核
- 【贪心+简单题】-CF-388A-A fox and box accumulation