线段树求逆序数(离散化)POJ 2299
来源:互联网 发布:如何修改手机淘宝评价 编辑:程序博客网 时间:2024/04/29 15:53
POJ2299题意:
给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。例如将"91054"变成"01459",最小交换6次,如果直接暴力,会超时。
样例:(2次测试)
Sample Input
5 序列中数的个数
9
1
0
5
4
3 序列中数的个数
1
2
3
0 n=0结束
Sample Output
6
0
其中需排序的数的范围0---999 999 999;显然数组不能开这么大,序列中数的个数N不大于500000,故先要将给出的序列离散到[1,500000]。
例: int a[] = {10000000, 10, 2000, 20, 300};
那么离散化后a[] = {5, 1, 4, 2, 3},是一个一一对应关系,而且满足原来的大小关系,离散的方法如下:
给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。例如将"91054"变成"01459",最小交换6次,如果直接暴力,会超时。
样例:(2次测试)
Sample Input
5 序列中数的个数
9
1
0
5
4
3 序列中数的个数
1
2
3
0 n=0结束
Sample Output
6
0
其中需排序的数的范围0---999 999 999;显然数组不能开这么大,序列中数的个数N不大于500000,故先要将给出的序列离散到[1,500000]。
例: int a[] = {10000000, 10, 2000, 20, 300};
那么离散化后a[] = {5, 1, 4, 2, 3},是一个一一对应关系,而且满足原来的大小关系,离散的方法如下:
- (1)定义一个类,用来表示序列中的一个数。
- class Node implements Comparable{
- int val;//值
- int no;//序号
- public int compareTo(Object o) {
- return this.val - ((Node) o).val;
- }
- }
- (2)然后将所给序列用下面数组p表示,排序p并离散化.
- int data[] = new int[n];
- Node[] p=new Node[n];
- for (int i = 0; i < n; i++) {
- p[i]=new Node();
- p[i].val=in.nextInt();
- p[i].no=i;
- }
- Arrays.sort(p);
- for(int i=0;i<n;i++){
- data[p[i].no]=i+1;
- }//以上是使其离散化
(1)定义一个类,用来表示序列中的一个数。 class Node implements Comparable{ int val;//值 int no;//序号 public int compareTo(Object o) { return this.val - ((Node) o).val; } }(2)然后将所给序列用下面数组p表示,排序p并离散化. int data[] = new int[n]; Node[] p=new Node[n]; for (int i = 0; i < n; i++) { p[i]=new Node(); p[i].val=in.nextInt(); p[i].no=i; } Arrays.sort(p); for(int i=0;i<n;i++){ data[p[i].no]=i+1; }//以上是使其离散化
- 线段树求逆序数(离散化)POJ 2299
- poj 2299 Ultra-QuickSort 线段树求逆序数+离散化||归并排序求逆序数
- poj 2299 Ultra-QuickSort(线段树,离散化求逆序数)
- POJ 2299 Ultra-QuickSort (树状数组求逆序数 || 线段树 +离散化)
- poj 2299 Ultra-QuickSort——归并排序求逆序数,线段树离散化
- POJ 2299 Ultra-QuickSort——离散化+线段树求逆序数
- NYOJ 117 求逆序数(离散化+线段树)
- poj 2299 树状数组(离散化)求逆序数
- POJ 2299 线段树求逆序数
- poj2299Ultra-QuickSort【线段树求逆序数】离散化
- POJ 2299 离散化+树状数组求逆序数
- POJ 2299 树状数组求逆序数+离散化
- poj 2299 离散化+树状数组求逆序数
- poj 2299(离散化+树状数组求逆序数)
- poj 2299 树状数组求逆序数+离散化
- POJ--2299 Ultra-QuickSort(离散化 + 求逆序数)
- POJ 2299 <离散化+树状数组求逆序数对>
- 树状数组 求逆序数 poj 2299 离散化
- JQuery JSON 循环
- 请教高手
- 蛇年谈程序员发展之路
- hdu 2955 Robberies + LightOJ 1079 Just another Robbery (01背包 概率)
- Java Spring 配置文件报错
- 线段树求逆序数(离散化)POJ 2299
- PlayFramework 2.0.1, ebean and oracle
- 小谈 B-S架构
- 博客宣言
- 程序员如何挑选自己的专业方向 .
- java 中的Unsafe
- sizeof(struct event_handling_struct)
- java 守护线程
- 一种离散化方法