Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping ...
分类:
其他好文 时间:
2018-02-23 20:51:27
阅读次数:
215
题目链接:https://vjudge.net/problem/POJ-2299 题目大意: 求数列中逆序对的个数。 知识点: 归并排序 解题思路: 对于数列中的每一个逆序对,它们之间早晚都需要一次邻位变换,因此答案即为数列中逆序对的个数。 我们用归并排序求逆序对个数:对于左右两个已经排好序的子区间 ...
分类:
其他好文 时间:
2018-02-14 13:53:06
阅读次数:
189
[BZOJ][1] [Luogu][2] 题意:每次交换序列中的两个数,然后求逆序对数 sol 看一眼这不是动态逆序对嘛。 所以就是一个裸的树套树呀 树状数组套线段树 修改的时候需要讨论一波交换的两个数的大小关系,设交换的两个位置是$a,b$且$a... 2、$h_a首先交换后$a,b$会贡献一对逆 ...
分类:
其他好文 时间:
2018-01-20 13:59:59
阅读次数:
121
CDQ分治是处理数据结构题的有力武器,通俗的讲,它可以替代一层数据结构,从而达到降低代码难度以及常数的作用,缺点是必须离线。 CDQ分治一般可以用来处理偏序问题以及斜率优化DP问题。 与普通分治不同的是,CDQ分治左区间的答案对右区间有贡献,最经典的例子是归并排序求逆序对。 下面先讲讲偏序问题: 二 ...
分类:
编程语言 时间:
2018-01-19 15:44:30
阅读次数:
194
一、 求逆元-费马小定理 二、 树状数组 三、 最大流-Dinic 四、 二分图-匈牙利算法 五、 扩展欧几里得 六、 假的字符串Hash,其实是map 七、 克鲁斯卡尔 八、 LCA-倍增 九、 构造最长公共子序列LCS 十、 归并排序求逆序对 十一、 线段树 十二、 SPFA 十三、 树链剖分 ...
分类:
其他好文 时间:
2018-01-18 19:34:49
阅读次数:
185
原题链接:https://www.luogu.org/problemnew/show/1327 题意简述:似乎不需要?反正就是一串数列任意交换两个数排序。 第一眼还以为是树状数组/归并排序求逆序对的裸题,然后仔细读题后发现可以任意交换,于是就想到了离散化解法。 自己独立写的第一个离散化,记录一下。 ...
分类:
编程语言 时间:
2018-01-18 17:22:27
阅读次数:
143
一、 求逆元-费马小定理 二、 树状数组 三、 最大流-Dinic 四、 二分图-匈牙利算法 五、 扩展欧几里得 六、 假的字符串Hash,其实是map 七、 克鲁斯卡尔 八、 LCA-倍增 九、 构造最长公共子序列LCS 十、 归并排序求逆序对 十一、 线段树 十二、 SPFA 十三、 树链剖分 ...
分类:
其他好文 时间:
2018-01-14 00:58:13
阅读次数:
151
归并排序求逆序对 题目大意 给你多个序列,让你求出每个序列中逆序对的数量。 输入:每组数据以一个数 n 开头,以下n行,每行一个数字,代表这个序列; 输出:对于输出对应该组数据的逆序对的数量; 顺便在此吐槽一下翻译器,翻译了一顿我啥都看不懂(都怀疑自己是不是中国人了),幸亏自己还能看懂点英语啊。 这 ...
分类:
其他好文 时间:
2018-01-12 01:32:56
阅读次数:
165
【题意】给定1~n的排列,m次操作每次删除一个数,求每次操作前的逆序对数。n<=10^5,m<=50000。 【算法】CDQ分治+树状数组 【题解】先树状数组求逆序对,然后统计每次删除的逆序对数。 每个数字及其坐标构成一个二维坐标,逆序对就是两个相对位置在左上右下的点,那么删除一个点会减少的逆序对就 ...
分类:
其他好文 时间:
2018-01-06 22:07:07
阅读次数:
138
滚回来更新,,, 在Day1我们学了最基本的线段树套平衡树 Day2开始我们要学习一些黑科技 (所以很大概率会出现Day3 w 1.线段树上的黑科技 这一段我们分几项来讲 1.权值线段树 权值线段树以权值为下标建树(就像求逆序对时用的树状数组),一开始所有节点都为0,通过线段树的区间极值,区间和来表 ...
分类:
其他好文 时间:
2017-12-16 19:40:49
阅读次数:
131