码迷,mamicode.com
首页 >  
搜索关键字:逆序对    ( 1060个结果
poj 4086:DNA排序
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
【莫队算法】bzoj3289 Mato的文件管理
莫队算法,离线回答询问,按一定大小(sqrt(n*log(n))左右)将答案分块,按 ①左端点所在块②右端点 双关键字排序。然后暴力转移。转移的时候用树状数组。O(n*sqrt(n)*log(n))。注意:①在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数。②在一列数的后面删除一个数...
分类:编程语言   时间:2014-10-29 12:28:39    阅读次数:273
BZOJ 3333 排队计划 树状数组+线段树
题目大意:给定一个序列,每次选择一个位置,把这个位置之后所有小于等于这个数的数抽出来,排序,再插回去,求每次操作后的逆序对数 首先我们每一次操作 对于这个位置前面的数 由于排序的数与前面的数位置关系不变 所以这些数的逆序对不会变化 对于这个位置后面比这个数大的数 由于改变位置的数都比这些数小 所以这些数的逆序对不会变化 说到底就是排序的数的逆序对数改变了 以这些数开始的逆序对没有了 于是就...
分类:编程语言   时间:2014-10-23 10:45:25    阅读次数:209
codeforces Round #261(div2) D解题报告
我们可以通过预处理,在O(n)之内,算出f(1, i, a[i]) 定义数组为l[i], 算出f(j, n, a[j]) 定义数组为r[i]。 题目就转化为:求出 l[i] > r[j] (i < j)。 本质上,就是一个求逆序对的做法,用树状数组。...
分类:其他好文   时间:2014-10-23 00:09:08    阅读次数:249
水题 逆序对 NOIP 2013 火柴排队
题目如下题目描述 Description涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai表示第一列火柴中第 i 个火柴的高度,bi表示第二列火柴中第 i 个火柴的高度。每列火柴中相邻两根火柴的...
分类:其他好文   时间:2014-10-22 17:51:36    阅读次数:385
BZOJ 2141 排队 分块+树状数组
题目大意:给定一个序列,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
hdu 4911 求逆序对数+树状数组
http://acm.hdu.edu.cn/showproblem.php?pid=4911 给定一个序列,有k次机会交换相邻两个位置的数,问说最后序列的逆序对数最少为多少。 实际上每交换一次能且只能减少一个逆序对,所以问题转换成如何求逆序对数。 归并排序或者树状数组都可搞 树状数组: 先按大小排序后分别标号,然后就变成了求1~n的序列的逆序数,每个分别查询出比他小的用i减,...
分类:编程语言   时间:2014-10-21 21:45:22    阅读次数:266
【分块】bzoj3295 [Cqoi2011]动态逆序对
考虑每次删除pos位置一个数x后,所造成的的影响就是,逆序对的个数少了在1~pos-1中大于x的数的个数加上pos+1~n中小于x的数的个数。那么我们需要的操作就只有查询区间内比某数大(小)的个数。↑,分块经典操作,每个块里维护一个有序表。由于有删除,最好每个块用一个vector。对于原数列怎么办呢...
分类:其他好文   时间:2014-10-16 20:36:13    阅读次数:214
POJ 3067 Japan 树状数组求逆序对
题目大意:有两排城市,这两排城市之间有一些路相互连接着,求有多少条路相互交叉。 思路:把所有的路先按照x值从小到大排序,x值相同的按照y值从小到大排序,然后插入边的时候,先找有多少比自己y值小的,这些边的x值一定比自己大,也就是一个逆序对,然后统计起来。记得答案要用long long (__int64) CODE: #include #include #inclu...
分类:编程语言   时间:2014-10-16 11:30:12    阅读次数:218
【vijos】1757 逆序对(dp)
https://vijos.org/p/1757有时候自己sb真的是不好说。。。我竟然想了半天都没想到这个转移。我是有多傻。。。。我们设f[i][j]表示1~i的排列且逆序对恰好是j的方案数。显然我们只需要将i放进i-1排列中就行了。而且发现i始终大于i-1那么就好做了,我们只要将所有i放到i-1序...
分类:其他好文   时间:2014-10-14 06:56:47    阅读次数:214
1060条   上一页 1 ... 97 98 99 100 101 ... 106 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!