poj2299(归并排序求逆序对)
来源:互联网 发布:java中的集合框架 编辑:程序博客网 时间:2024/05/20 12:21
#include<stdio.h> #include<stdlib.h> int a[500001];int t[500001],k;long long ans;void gbpx(int x,int y){ int u,v,m,i; if(x==y)return; m=(x+y)/2; if(x<=m)gbpx(x,m); if(m+1<=y)gbpx(m+1,y); u=x;v=m+1; k=0; while(u<=m && v<=y){ if(a[u]>a[v]){ ans+=m-u+1; t[++k]=a[v]; v++; }else{ t[++k]=a[u]; u++; } } for(i=u;i<=m;i++)t[++k]=a[i]; for(i=v;i<=y;i++)t[++k]=a[i]; for(i=1;i<=k;i++)a[x+i-1]=t[i]; } int main(){ int i,j,k,m,n; while (1){ scanf("%d",&n); if (n==0) break; ans=0; for (i=1;i<=n;i++) scanf("%d",&a[i]); if (n>1) gbpx(1,n); printf("%lld\n",ans); } return 0;}
1 0
- poj2299 归并排序求逆序对
- POJ2299(归并排序求逆序对)
- poj2299(求逆序对,归并排序)
- poj2299(归并排序求逆序对)
- POJ2299 Ultra-QuickSort 归并排序求逆序数对
- POJ2299 Ultra-QuickSort 归并排序求逆序对
- Ultra-QuickSort poj2299 (归并排序 求逆序数对)
- POJ2299 归并排序求逆序数
- poj2299 归并排序求逆序数
- poj2299 归并排序求逆序数
- poj2299--归并排序求逆序数
- POJ2299 求逆序对
- POJ2299 归并求逆序数
- (归并排序求逆序数) poj2299 Ultra-QuickSort
- POJ2299-Ultra-QuickSort (归并排序求逆序数)
- POJ2299 Ultra-QuickSort (归并排序求逆序数模板)
- poj2299解题报告(归并排序求逆序数)
- poj1804和poj2299归并排序求逆序数
- caffe python wrapper
- Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- USACO2013FebruaryGold partition
- Autolayout_APP适配终结者
- C#之WinForm基础 获得窗体实时的供控件使用的宽与高(窗体变,数也变)
- poj2299(归并排序求逆序对)
- jQuery 取值、赋值的基本方法整理
- 浅谈Java 中的堆和栈
- Thread & ExecutorService & ThreadPoolExecutor 总览
- JQ知识点1
- android源码大放送(实战开发必备)
- 击鼓传花(赛码网)
- Linux下Nginx的安装
- 策略模式