POJ 3928 & HDU 2492 Ping pong(树状数组求逆序数)...
分类:
编程语言 时间:
2014-10-17 00:02:23
阅读次数:
261
题目链接:http://poj.org/problem?id=2299思路:序列的逆序数即为交换次数,所以求出该序列的逆序数即可。根据分治法思想,序列分为两个大小相等的两部分,分别求子序列的逆序数;对于右子序列中的每一个数,求出左序列中大于它的数的数目,计算的和即为解。另外,使用Merge排序时,可...
分类:
其他好文 时间:
2014-10-09 13:24:43
阅读次数:
153
题目链接:http://poj.org/problem?id=1804思路:序列的逆序数即为交换次数,所以求出该序列的逆序数即可。根据分治法思想,序列分为两个大小相等的两部分,分别求子序列的逆序数;对于右子序列中的每一个数,求出左序列中大于它的数的数目,计算的和即为解。另外,使用Merge排序时,可...
分类:
其他好文 时间:
2014-10-09 13:03:53
阅读次数:
216
这道题的解法真的很好!!!
思路:建立一个结构体包含val和id, val就是输入的数,id表示输入的顺序。然后按照val从小到大排序,如果val相等,那么就按照id排序。
如果没有逆序的话,肯定id是跟i(表示拍好后的顺序)一直一样的,如果有逆序数,那么有的i和id是不一样的。所以,利用树状数组的特性,我们可以简单的算出逆序数的个数。
如果还是不明白的话举个例子。(输入4个数)
...
分类:
其他好文 时间:
2014-10-09 02:25:47
阅读次数:
107
题目地址:Minimum Inversion Number题目大意: 求逆序对数,求循环移位后逆序数的最小值,意思一次将第一位移到最后一位,然后计算逆序对数,求出最小的那个。解题思路: 因为是序列0->n-1区间的数,所以当你求的,它给出的a1.a2...an-1的逆序对数时cnt,推出如果移位.....
分类:
其他好文 时间:
2014-10-07 17:30:13
阅读次数:
235
题目链接:hdu 1394 Minimum Inversion Number该题是求最小逆序对的扩展。可以使用树状数组来实现。对于$n$个数的序列$A$,其第$i$个数($i\in [0,n)$)的逆序数$r_i$可以表示为它的角标$i$减去在它之前且不大于它的数的个数。例如对序列A = {1,3,...
分类:
其他好文 时间:
2014-10-03 00:28:23
阅读次数:
230
对于空格(0)的左移/右移操作,对应序列不变(逆序数也就不变)
对于空格(0)的上移/下移操作,相当于序列的某个数字前移/后移两位,该序列的逆序数奇偶性不变。
所以求初始状态与目标状态的逆序数可作出判断
例中前者为奇,后者为偶,因此无解
利用奇偶性判断所给出的初始状态有无解.
判别方法是:
以数组为一维的举例子.
将八数码的一个结点表示成一个数组a...
分类:
其他好文 时间:
2014-10-02 20:08:13
阅读次数:
245
求逆序数
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。
比如 1 3 2 的逆序数就是1。
输入第一行输入一个...
分类:
其他好文 时间:
2014-10-01 19:33:21
阅读次数:
151
hi,主要注意两点:1、如果只用一份传入的临时数组,在merge的最后,要把所有元素,copy回原数组;2、逆序数计算的时候low2-i,而不是low2-low1其实还可以做一点优化,就是在merge函数里,后半段如果没结束,可以不用copy到临时数组,然后从临时数组,copy回原数组的时候,可以..
分类:
其他好文 时间:
2014-09-30 04:56:32
阅读次数:
206
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10326 Accepted Submission...
分类:
其他好文 时间:
2014-09-29 13:16:20
阅读次数:
204