用归并排序方式 最原始的方法的复杂度是O(n^2)。 使用归并排序的方式,可以把复杂度降低到O(nlgn). 设A[1..n]是一个包含N个非负整数的数组。如果在i〈 j的情况下,有A〉A[j],则(i,j)就称为A中的一个逆序对。例如,数组(3,1,4,5,2)的“逆序对”有<3,1>,<3,2> ...
分类:
其他好文 时间:
2016-12-02 21:23:13
阅读次数:
158
额,考前没能把这篇文章发出来,考后发一发。 我已经无法很好的给它们分类了。后面还有一些模板如果没法分类就都放在这里吧。 一、二分答案(贴了另外一个) 二、快速幂 三、归并(求逆序对) 四、堆(排序,手写priority_queue) 1、加入元素 2、取出堆顶元素 五、二分匹配 六、Tarjan(有 ...
分类:
其他好文 时间:
2016-12-02 18:34:30
阅读次数:
224
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 时间限制: 1 s ...
分类:
其他好文 时间:
2016-11-30 02:20:02
阅读次数:
282
M × N Puzzle Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 4112 Accepted: 1140 Description The Eight Puzzle, among other sliding-tile pu ...
分类:
编程语言 时间:
2016-11-23 06:56:00
阅读次数:
206
考虑到每次出哒哒哒操作,最少多少次操作使数组有序这一类题我都错的很惨,小小地总结一下 1.交换相邻位置的点->求逆序对(火柴排队,10.30noip模拟赛T1),有效的操作一定使得逆序对减少一个 2.交换任意位置->转化为置换(10.30noip模拟赛T1),置换内交换只需要置换中点个数次 3.每次 ...
分类:
编程语言 时间:
2016-11-19 01:48:47
阅读次数:
215
https://www.luogu.org/problem/show?pid=U4566 显然的逆序对,以前只是嘴巴ac,这次终于打了出来。 逆序对其实就是冒泡排序的排序次数。。。。但是一般的排序时间复杂度为O(n^2),于是都会想到归并排序。。。 一、二路归并 已知两个有序数组,将其归并为一个有序 ...
分类:
编程语言 时间:
2016-11-17 10:12:59
阅读次数:
258
给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数,每读入一个数就更新树状数组,查看它前面比它小的已出现过的有多少个数sum,然后用当前位置减去该sum,就可以得 ...
分类:
编程语言 时间:
2016-10-16 21:46:32
阅读次数:
191
逆序对 【线段树解法】 求逆序对问题是一个十分经典的算法问题,通常使用归并排序解决,经gster大神指点,写出了逆序对线段树写法,顺便练了练线段树。 题目传送门:http://noi.openjudge.cn/ch0204/7622/ 代码: ...
分类:
其他好文 时间:
2016-09-29 01:51:04
阅读次数:
107
1.分块 2.归并排序 <要有自己的理解 写模板> 3.求逆序对 <超车,火柴棒> 4.快排 <看网上题解!> 5.求最短路 6.快速幂 ...
分类:
其他好文 时间:
2016-09-24 12:11:44
阅读次数:
121