题解: 求逆序数裸题, 求逆序数,也就是把值放入树状数组中,而不是位置 值可能比较大,需要hash 代码: ...
分类:
其他好文 时间:
2016-09-22 21:21:19
阅读次数:
122
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 55894 Accepted: 20653 Description In this problem, you have to analyze a pa ...
分类:
其他好文 时间:
2016-08-28 08:41:09
阅读次数:
259
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 53685 Accepted: 19722 Description 题目太长可以不看。目的是给定数列求逆序对。 In this problem, yo ...
分类:
其他好文 时间:
2016-07-03 23:15:55
阅读次数:
209
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping ...
分类:
其他好文 时间:
2016-06-10 16:19:55
阅读次数:
195
题意:利用树状数组求逆序数; 思路:因为输入范围较大,先离散化一下,得到的数组a记录了原来数组的大小关系;然后按下标顺序执行add(a[i],1),这样sum(a[i])得到的就是小于等于a[i]的个数,i-sum(a[i])即为a[i]前面比a[i]大的数的个数 //外循环n次并累加i-sum(a ...
分类:
编程语言 时间:
2016-06-03 12:39:54
阅读次数:
162
http://poj.org/problem?id=2299 归并排序:比如现在有一个序列[l,r),我们可以把这个序列分成两个序列[l,mid),[mid,r),利用递归按照上 述方法逐步缩小序列,先使子序列有序,再使子序列区间有序,然后再把有序区间合并,很好滴体现了分治的思想。 逆序数(如果有i ...
分类:
编程语言 时间:
2016-05-09 12:24:37
阅读次数:
204
#include<iostream>using namespace std;int a[500100];int t[500100];long long ans;void sort(int l,int r){ if(l==r) return ; int mid=(l+r)/2; sort(l,mid) ...
分类:
编程语言 时间:
2016-04-01 20:17:48
阅读次数:
129
这道题题意很简单,就是求逆序数。用暴力的方法是显然会超时的。这里考虑采用树状数组。采用树状数组话遇到的问题就是需要999,999,999个空间来存放数据,这显然是不可行的。考虑到输入数据最多只有500,000个,那么可以采用离散化的方法来先将输入数据进行映射到较小的空间上,然后再用一般的树状数组操作...
分类:
编程语言 时间:
2015-10-23 13:21:14
阅读次数:
183
poj2299 Ultra-QuickSort 树状数组求逆序数Ultra-QuickSortTime Limit:7000MSMemory Limit:65536KTotal Submissions:49587Accepted:18153DescriptionIn this problem, y....
分类:
编程语言 时间:
2015-10-06 18:15:22
阅读次数:
179
逆序对 比如 3 2 1 3之前的数没有比它大的(或者说前面没有数了),所以没有逆序对2之前的数有3比它大 所以有逆序对+11之前的数有 3 2 比它大 所以有逆序对+2所以 3 2 1 序列 的 总的逆序对为3对-----在归并算法中 合并两个已经排序好的序列时 是从两个序列的首个位置开始进行比较...
分类:
编程语言 时间:
2015-09-18 15:40:15
阅读次数:
152