题目大意:求1~n的所有排列中有多少种逆序对为k的方案数
令f[i][j]为前i个数的排列中逆序对数为j的方案数
那么我们将第i个数插入1~i-1的排列中 可以产生0~i-1个逆序对
于是有
f[i][j]=Σf[i-1][k] (j-i+1
维护前缀和即可
#include
#include
#include
#include
#define M 1010
#define MOD...
分类:
其他好文 时间:
2014-11-17 14:06:28
阅读次数:
192
离散化,分块。预处理出:ans[i][j] 第i块到第j块的逆序对数。f[i][j] 第1~i块中大于j的数的个数。g[i][j] 第1~j块中小于j的数的个数。每次询问时对于整块部分可以O(1)获得。对于零散部分呢?>在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数。>在一列数的前...
分类:
编程语言 时间:
2014-11-16 18:34:43
阅读次数:
346
题目地址:Minimum Inversion Number题目大意: 求逆序对数,求循环移位后逆序数的最小值,意思一次将第一位移到最后一位,然后计算逆序对数,求出最小的那个。解题思路: 数组数组。 线段树代码。代码: 1 #include 2 #include 3 #inclu...
分类:
其他好文 时间:
2014-10-30 22:34:07
阅读次数:
321
poj 4086:DNA排序
题目
描述
现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。
逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。
输入
第1行:两个整数n和m,n(0
第2至m+1行...
分类:
编程语言 时间:
2014-10-30 15:17:37
阅读次数:
392
莫队算法,离线回答询问,按一定大小(sqrt(n*log(n))左右)将答案分块,按 ①左端点所在块②右端点 双关键字排序。然后暴力转移。转移的时候用树状数组。O(n*sqrt(n)*log(n))。注意:①在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数。②在一列数的后面删除一个数...
分类:
编程语言 时间:
2014-10-29 12:28:39
阅读次数:
273
题目大意:给定一个序列,每次选择一个位置,把这个位置之后所有小于等于这个数的数抽出来,排序,再插回去,求每次操作后的逆序对数
首先我们每一次操作 对于这个位置前面的数 由于排序的数与前面的数位置关系不变 所以这些数的逆序对不会变化
对于这个位置后面比这个数大的数 由于改变位置的数都比这些数小 所以这些数的逆序对不会变化
说到底就是排序的数的逆序对数改变了 以这些数开始的逆序对没有了
于是就...
分类:
编程语言 时间:
2014-10-23 10:45:25
阅读次数:
209
题目大意:给定一个序列,m次交换两个数,求初始逆序对数及每次交换后的逆序对数
首先离散化,分块,对于每块建立一个树状数组,保存这个块中的所有元素
然后对于每个询问(x,y) (x
a[i]
a[i]>a[x] ++ans
a[i]
a[i]>a[y] --ans
然后对于块中的树状数组处理,块外的暴力
注意此题元素有重复 亲测可信
RANK5吓尿0.0 为何块套树要比树套树还快…...
分类:
编程语言 时间:
2014-10-22 14:42:48
阅读次数:
286
http://acm.hdu.edu.cn/showproblem.php?pid=4911
给定一个序列,有k次机会交换相邻两个位置的数,问说最后序列的逆序对数最少为多少。
实际上每交换一次能且只能减少一个逆序对,所以问题转换成如何求逆序对数。
归并排序或者树状数组都可搞
树状数组:
先按大小排序后分别标号,然后就变成了求1~n的序列的逆序数,每个分别查询出比他小的用i减,...
分类:
编程语言 时间:
2014-10-21 21:45:22
阅读次数:
266
Definition of Inversion: Let (A[0], A[1] ... A[n], n A[j], then the pair (i, j) is called inversion of A.Example:Count(Inversion({3, 1, 2})) = Count(....
分类:
其他好文 时间:
2014-10-10 23:23:44
阅读次数:
193
题目地址:Minimum Inversion Number题目大意: 求逆序对数,求循环移位后逆序数的最小值,意思一次将第一位移到最后一位,然后计算逆序对数,求出最小的那个。解题思路: 因为是序列0->n-1区间的数,所以当你求的,它给出的a1.a2...an-1的逆序对数时cnt,推出如果移位.....
分类:
其他好文 时间:
2014-10-07 17:30:13
阅读次数:
235