1 /* 2 题意让你求交换次序,实际求逆序对数即可 3 而归并排序时,刚好需要比较mid两边的数,所以只需在归并时累加即可 4 5 例:(归并时一定会排好小组内的顺序) 6 7 对应位置: i m j 8 对应数字: 4 5 6 1 2 3 9 10 4 > 1 -> ans += 3;//因为4... ...
分类:
其他好文 时间:
2017-08-04 00:25:11
阅读次数:
198
逆序对 ——!x^n+y^n=z^n 可以到这里[luogu]: https://www.luogu.org/problem/show?pid=1908 题意:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。 ...
分类:
编程语言 时间:
2017-07-25 22:31:15
阅读次数:
214
我们都知道,求逆序对数量可以用归并排序解决。但是用归并排序只能解决静态的序列问题,没有扩展的区间。因此就有了用权值线段树求逆序对的方法。 附上百度的离散化定义: 把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小 ...
分类:
其他好文 时间:
2017-07-25 19:31:50
阅读次数:
208
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2212 【题目大意】 给出一棵二叉树,每个叶节点上有一个权值,现在可以任意交换左右儿子, 使得逆序对最少,求最少的逆序对数量 【题解】 我们发现对于每个非叶节点来说,其贡献值为左右两个儿子 ...
分类:
其他好文 时间:
2017-07-24 10:08:18
阅读次数:
146
题意: 求1到n的全排列中有m对逆序对的方案数。 思路: 1.f[i][j]表示1到i的全排列中有j对逆序对的方案数。 2.显然,1到i的全排列最多有(i-1)*i/2对逆序对,而对于f[i][j]来说,新加入一个数i+1,产生的新的逆序对数与插入的位置有关(数目为插入的数的位置之后的数的数目),于 ...
分类:
其他好文 时间:
2017-07-16 11:20:00
阅读次数:
267
对1~n组成的序列进行冒泡排序,一共进行了k趟,问有几个符合题意的序列。 注意:这里指每一趟是指交换当前相邻的全部逆序对,比如:2 1 4 3进行一趟交换就是1 2 3 4 假设我们细心观察。就会发现。须要进行的趟数等于序列中对于某个最多逆序对数的数。比如:在序列 3 2 1 4中。3的逆序对为0, ...
分类:
其他好文 时间:
2017-07-04 16:37:43
阅读次数:
119
题目描述 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的 数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个? 输入 第一行为两个整数n,k。 输出 写入一个整数,表示符合条件的数列个数,由于这个 ...
分类:
其他好文 时间:
2017-06-03 21:43:40
阅读次数:
250
【题目大意】 有一棵2n-1个节点的二叉树,它有恰好n个叶子节点,每个叶子节点上写了一个整数。如果将这棵树的所有叶子节点上的数从左到右写下来,便得到一个序列a[1]…a[n]。现在想让这个序列中的逆序对数量最少,但唯一的操作就是选树上一个非叶子节点,将它的左右两颗子树交换。你可以做任意多次这个操作。 ...
分类:
其他好文 时间:
2017-05-31 16:41:04
阅读次数:
213
我果然还是太NAIVE了 一直没有学到这么搞基的求逆序对数方法 其实就是有点像计数排序 先开一个巨大的树状数组 然后插入一个数的时候看一下SUM 用当前位置减一下SUM就可以了 //其实就是求和 1 #include <iostream> 2 #include <cstdio> 3 #include ...
分类:
编程语言 时间:
2017-05-20 11:18:16
阅读次数:
281