题目:给出一个确定在n个不同元素的任何排列中逆序对数量的算法,最坏情况需要Θ(nlgn)时间。(提示:修改归并排序。)思路:修改从大到小排序的归并排序。 归并排序分为三步:分解、解决、合并。 分解:将排列A分解为A1、A2两个子排列。 解决:递归的从大到小排列A1和A2,在此同样递归的求解A1...
分类:
编程语言 时间:
2015-02-10 11:02:33
阅读次数:
251
题目大意:给出一个数列,支持交换两个数字的操作,问每次操作之后的逆序对数量。
思路:数字比较大,先离散化。然后先求一次总逆序对,每次交换两个数字的时候用树套树维护一下逆序对的总数就可以了。。
好像树套树的常数略大,正解应该是分块。。
CODE:
#include
#include
#include
#include
#define MAX 20010
using...
分类:
其他好文 时间:
2015-01-30 09:18:18
阅读次数:
272
知识点:
最大密度子图、最大权闭合图、最小割。
题目大意:
给出1~n这n个正整数的一种排列P,要求在P中找出一个子序列S,使得子序列中包含的逆序数对数r(S)和子序列的长度l(S)的比值最大。输出这个最大的比值r(S)/ l(S)。
解题思路:
可以将每个数看成图中的点,将逆序对的关系转换为图中的边。即构成了一个无向图。样例可以转换为下图:
现在要求的就是在图中选取一些点,以及他们互相之间相连的边,构成一个闭合子图。使得图中的边数(逆序对数)与点数(选取的数字)的比值最大。这就是一个最...
分类:
其他好文 时间:
2015-01-24 15:56:03
阅读次数:
446
题目大意:给出一个数列,每次从这个序列中删掉一个数字,问每次删之前逆序对的数量是多少。
思路:这个题用CDQ分治是飞快的,然而我不知道怎么写。。于是就朴素的写了树套树。然后就朴素的被卡常了
内层用一个线段树。这个线段树不修改,一开始就要建好,然后线段树的每一个节点维护一个平衡树,存的是线段树存的区间中所有的值。
一开始先算一下逆序对数,然后每次删点的时候,先查询在这个点之前有多少大于...
分类:
其他好文 时间:
2014-12-23 17:25:53
阅读次数:
360
2431: [HAOI2009]逆序对数列Time Limit:5 SecMemory Limit:128 MBSubmit:954Solved:548[Submit][Status]Description对于一个数列{ai},如果有iaj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n...
分类:
其他好文 时间:
2014-12-22 00:46:37
阅读次数:
195
Description对于一个数列{ai},如果有iaj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个?Input第一行为两个整数n,k。Output写入一个整数,表示符合条件的数列个数,由于...
分类:
其他好文 时间:
2014-12-14 17:02:41
阅读次数:
220
题目大意:给出一个序列,求出这个序列的逆序对数量。定义一种操作,将一个数和他后面比他小的数字拿出来排序, 然后再放回去,之后输出逆序对数。
思路:思路题。手动模拟一下,会发现,逆序对变化的只是排序的那些点 。所以我们只要处理那些点就行了。先求一次逆序对,然后每次在拿出的数后面找到一个最小的数字,把它的权值改成INF,统计答案。
CODE:
#include
#inclu...
分类:
编程语言 时间:
2014-12-06 16:57:25
阅读次数:
159
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2431分析:f(i,j)表示前i个数字逆序对数目为j时候的方案数那么有f(i,j)=∑f(i-1,k) j-i+1<=k<=j看似是n*k*k的,但是注意对于每一个i,当j=j+1时候,结...
分类:
其他好文 时间:
2014-11-27 00:12:47
阅读次数:
203
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3574
题意:一个坐标系,给出x1、x2限定左右边界,有n条直线,告诉每条直线的k和b,问在x1、x2区间内空间被直线分割成几部分
思路:
这道题是比赛时做的,AC之后发现别人都是用归并排序求逆序对数来解的。
说我的解法吧,首先拿到题的时候发现是划分...
分类:
其他好文 时间:
2014-11-21 01:44:38
阅读次数:
390
题目大意:给出一段序列,求一个区间内的逆序对数量.
思路:又是没有修改的查询操作,又可以搞莫队了(莫队真好搞..
先把所有的询问排序,然后从头到位进行转移,记一个全局的答案,然后每次转移的时候记录逆序对的改变情况.然后从ans数组中输出..
CODE:
#include
#include
#include
#include
#include
#define...
分类:
编程语言 时间:
2014-11-18 16:02:14
阅读次数:
212