![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆序数
qq_38232157
这个作者很懒,什么都没留下…
展开
-
HOJ 1394 Minimum Inversion Number(线段树,逆序数)
线段树计算逆序数 本题要点: 1、本题中n个数,恰好是 0 ~ n - 1,不需要离散化,而且没有任意两个数相同的。 2、 先初始化树, 所有节点的sum 赋值为0。 然后每次新加入 一个数 a[i], 先查询 区间 [a[i] + 1, n + 1] 这些数出现的总次数。 意味着,查询比 a[i] 先加入的,并且比 a[i] 大的数的总数。 这些数与 a[i] 构成逆序数。 然后,执行更新操作, update(1, a[i]), 表示 a[i] 出现的次数加1. 3、 求出序列 a[1], a[2], …原创 2020-09-28 00:04:09 · 57 阅读 · 0 评论 -
POJ 2893 M × N Puzzle(进阶指南,逆序数,归并排序)
算法竞赛进阶指南,38 页, 排序, 归并求逆序数 题目意思: 给出一个 n * m 的矩阵,数字 1 ~ (n * m -1) 这 n * m -1 个数字放在这个矩阵中,有一个是空格; 交换每个空格和数字,看看能不能使得空格放在最后一个位置,其余的每个数字,放在相应的地方。 本题要点: 1、 根据列数的奇偶性,分类讨论: a)列数m是 奇数, 结论同 CH_0503 一样, 序列的逆序数 s 和 每个数都放在相应的位置的逆序数(值为0) 的奇偶性一样 b)列数m是 偶数, 1)序列逆序数之差; 2)两原创 2020-05-31 17:35:07 · 173 阅读 · 0 评论 -
CH 0503 奇数码问题(进阶指南, 逆序数,归并)
算法竞赛进阶指南,38 页, 排序, 归并求逆序数 本题要点: 1、 不考虑空格,把每一个数字写到一个数组 a 上 空格与一个数字左右交换,逆序数不变。空格与一个数字上下交换,相当于把某个数字 (比如 a)往前移动了 n - 1 个位置 或则往后移动了 n - 1 个位置。 2、 这里以 a 往前移动了 n - 1 个位置为例,这n - 1 个数,假设有x个大于a , y个小于a(x + y == n - 1), 移动前的逆序数: 不变的部分 + x 移动后的逆序数: 不变的部分 + y 两种转态的逆序数的原创 2020-05-31 16:19:11 · 216 阅读 · 0 评论