POJ 2299 Ultra-QuickSort(归并排序求逆序数)
来源:互联网 发布:微信聊天数据怎么恢复 编辑:程序博客网 时间:2024/05/16 17:46
题目链接:http://poj.org/problem?id=2299
题目意思很简单,其实冒泡就能搞定结果,但是肯定会超时
题目其实就是要你求逆序数对数,归并排序搞一下就可以了!
#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;#define maxn 510000#define LL long longint rec[maxn],temp[maxn],n;LL ans;int merge(int *a,int *b,int len1,int len2){ int i=0,j=0,k=0; while(i<len1 && j<len2){ if(a[i]>b[j]){ ans+=len1-i;//前面的a[i]后面的都会比后面的b[j大 temp[k++]=b[j++]; } else temp[k++]=a[i++]; } while(i<len1) temp[k++]=a[i++]; while(j<len2) temp[k++]=b[j++]; memcpy(a,temp,k*4); return 0;}int merge_sort(int l,int r){ if(l>=r) return 0; int mid=(l+r)>>1; merge_sort(l,mid); merge_sort(mid+1,r); merge(rec+l,rec+mid+1,mid-l+1,r-mid); return 0;}int main(){ int i,j,k; while(scanf("%d",&n),n){ for(i=0;i<n;i++) scanf("%d",&rec[i]); ans=0; merge_sort(0,n-1); printf("%lld\n",ans); } return 0;}
- POJ 2299 Ultra-QuickSort(归并排序求逆序数)
- 2299 Poj Ultra-QuickSort(归并排序求逆序数)
- (POJ 2299)Ultra-QuickSort 归并排序求逆序数
- poj 2299 Ultra-QuickSort(归并排序求逆序数)
- Poj 2299 Ultra-QuickSort(归并排序求逆序数)
- poj 2299 Ultra-QuickSort :归并排序求逆序数
- POJ 2299 Ultra-QuickSort (归并排序求逆序数)
- poj-2299 Ultra-QuickSort 归并排序求逆序数
- poj 2299 Ultra-QuickSort(归并排序求逆序对)
- POJ 2299 Ultra-QuickSort(归并排序求逆序对数)
- poj 2299 Ultra-QuickSort (归并排序,逆序数)
- POJ 2299 Ultra-QuickSort (归并排序、逆序数)
- POJ 2299 Ultra-QuickSort 【归并排序求逆序数 OR 树状数组求逆序数】
- poj 2299 Ultra-QuickSort 线段树求逆序数+离散化||归并排序求逆序数
- poj-2299 Ultra—QuickSort(归并排序求逆序数)
- poj(2299)——Ultra-QuickSort(归并排序求逆序数)
- poj 2299 Ultra-QuickSort 归并排序(求逆序数模板)
- POJ 2229 Ultra-QuickSort 归并排序求逆序数
- 黑马程序员-JAVA学习之环境搭配
- 人名翻译规则
- hdu4766 network 圆与圆交 (2013网络赛)
- Java多线程之syncronized(二)
- 每日一题(97) - 找出大于某值的最小的不重复数
- POJ 2299 Ultra-QuickSort(归并排序求逆序数)
- C++多重继承,虚函数表的次序
- Distributed garbage collection used in RMI
- POJ 1659 Frogs' Neighborhood
- 查找算法_二分查找
- 尾部插入节点
- Yii中CDbCriteria常用总结(转)
- Android网络编程——https 不验证证书方式(信任所有证书)
- 在青软实训的一个月里,我经历了从一个学生的位置到一个公司职员的过度。