归并排序:时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。空间复杂度为 O(n)归并排序比较占用内存,但却是一种效率高且稳定的算法。速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。具体思路是,在归并的过程中计算每个小区间的逆序对数,进而计算出大...
分类:
编程语言 时间:
2015-06-18 21:26:54
阅读次数:
136
1 #include 2 #include 3 #include 4 #include 5 #define ll long long 6 #define MAX 500005 7 using namespace std; 8 9 struct Node10 {11 int val,po...
分类:
编程语言 时间:
2015-06-02 17:43:33
阅读次数:
117
原题链接:http://ac.jobdu.com/problem.php?pid=1348归并排序求逆序对。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 typedef unsigned long long ull; 7 co...
分类:
编程语言 时间:
2015-05-27 22:29:53
阅读次数:
233
题意:
给出一段长为n的数列,求其逆序对数;
然后给出m个操作,每次操作给出l,r;
交换l,r并输出操作之后的逆序对数;
n
题解:
求逆序对本来是一个很简单的事情,然而动态修改就不能用树状数组直接搞了;
因为树状数组求逆序对是不支持区分某个数在它前面还是后面的;
所以考虑求在它之前小于它的数的个数,用线段树维护区间,套treap维护排名;
在求排名的过程中顺便记录一个...
分类:
其他好文 时间:
2015-05-26 10:49:29
阅读次数:
175
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13036Accepted Submission(s...
分类:
编程语言 时间:
2015-05-25 12:44:17
阅读次数:
181
题意:
给一个整数序列,为0-n-1的一个排列,然后每次将这个排列的第一个数字移到最后一个,总共进行n-1次,这样加上原始序列总共有 n个序列,求出这n个序列中逆序对数的最小值。
这道题本来是划分到线段树的,但考虑到n
具体关系推导过程:
不妨把当前序列设为 a[i],a[i+1]....a[n-1],a[0],a[1],...,a[i-1],把a[i]移到最后的时候,a[i]到a...
分类:
其他好文 时间:
2015-05-24 08:52:21
阅读次数:
117
求逆序对问题与解决方案原理
在一个数列中,如果规定从小到大为正序,那么如果排在后面的某个元素比前面的某一个元素小,那么就称这两个数构成一个逆序对,例如,数列5,4,3,2,1中,任一个数都与它前面的数构成逆序对,这个序列中一共就有1+2+3+4=10个逆序对,数列23541中有5个逆序对,那么任给定一个数列,如何知道有多少个逆序对呢?简单的方法是将每个元素与它后面的元素比较,然后就可以累加出总的...
分类:
其他好文 时间:
2015-05-22 09:52:32
阅读次数:
221
hdu 5224 Tom and paper
题意:
给出一个1~n的排列,求所有字典序比它小的排列的逆序对之和,答案对1e9+7取模。
限制:
1
思路:
分类讨论
1. 全排列的逆序对之和:n!*n*(n-1)/4
2. 然后遍历每一位,相等的话继续看后面一位,不等的话,看后面小于它的有多少个数,然后乱搞一下。
/*hdu 5224 Tom and paper
...
分类:
其他好文 时间:
2015-05-14 18:47:16
阅读次数:
117
题目大意:Tom学会了通过写程序求出一个1-n的排列的逆序对数,但他的老师给了他一个难题:
给出一个1-n的排列,求所有字典序比它小的1-n的排列的逆序对数之和。
Tom一时不知道该怎么做,所以他来找你帮他解决这个问题。
因为数可能很大,答案对109+7取模。
解题思路:从1到n枚举k,表示当前要计算的排列与读入的排列前k-1项相同,而第k项不同。对于每一个k,再枚举一个t,表示当前要计算的...
分类:
其他好文 时间:
2015-05-13 16:48:23
阅读次数:
193
题目传送:Minimum Inversion Number
思路:线段树,求最小逆序数,先可以通过n*logn的时间用线段树求出初始的逆序对数,然后递推求出其他的解,递推过程看代码
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-05-13 14:49:06
阅读次数:
158