左偏树模板题。 只不过这里要加上并查集的路径压缩(因为要找堆顶),不然复杂度是错的。 因为一个人被杀了,他就没了,为了证明他没了,所以要把他的val设成-1。 #include <iostream> #include <cstdio> using namespace std; const int N ...
分类:
其他好文 时间:
2020-05-10 17:03:27
阅读次数:
55
LINK: "罗马游戏" 这道题 每次合并两个集合 或者 每次找到某个集合中值最小的并且将其删掉。 发现直接主席树+主席树合并即可 但是这样做过于不优美且$n\leq 1000000$这样做在常数上不优秀。 我们考虑开堆 合并两个堆?启发式合并?nlog^2崩掉。 那直接开斜堆 即左偏树 或者说可并 ...
分类:
其他好文 时间:
2020-03-17 19:29:40
阅读次数:
61
1、罗马游戏: 左偏树模板。 小根堆:合并选小的做根,记为$r1$,然后把$r2$合并到$r1$右边(原$r1$左边长,右边短),然后更新父亲,判断长度关系交换儿子,更新长度。 删除用$fhq_treap$的删除方式。 查找用并查集的方法,但是不带路径压缩。 2、棘手的操作: 联通块内最小值用左偏树 ...
分类:
其他好文 时间:
2019-09-10 00:21:47
阅读次数:
81
罗马游戏 题目描述 罗马皇帝很喜欢玩杀人游戏。 他的军队里面有n个人,每个人都是一个独立的团。最近举行了一次平面几何测试,每个人都得到了一个分数。 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻。 他决定玩这样一个游戏。 它可以发两种命令: Kill(i)。把i所在的团里面得分最低的人杀死。如果i ...
分类:
其他好文 时间:
2018-04-20 20:44:06
阅读次数:
143
BZOJ_1455_罗马游戏_可并堆 Description 罗马皇帝很喜欢玩杀人游戏。 他的军队里面有n个人,每个人都是一个独立的团。最近举行了一次平面几何测试,每个人都得到了一个分数。 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻。他决定玩这样一个游戏。 它可以发两种命令: 1. Merge ...
分类:
其他好文 时间:
2018-04-20 14:38:04
阅读次数:
105
罗马游戏 bzoj-1455 题目大意:给你n个人,2种操作,m次操作:1.将i号士兵所在的集合的最小值删除 2.合并i和j两个士兵所在的团体 注释:$1\le n\le 10^6$,$1\le m \le 10^5$。 想法:又是GXZlegend讲课,可并堆中的左偏树。了解一下: 一个具有堆性质 ...
分类:
其他好文 时间:
2018-04-16 21:09:41
阅读次数:
123
这道题不能用cincout..会RE到你怀疑人生的... ...
分类:
其他好文 时间:
2018-02-11 10:40:08
阅读次数:
112
可并堆模板??又敲了一次,一遍过,很好。 1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 //#include<assert.h> 6 #include<algorithm> 7 / ...
分类:
其他好文 时间:
2018-01-11 11:29:52
阅读次数:
150
左偏树裸题。 题面描述让人意识到了平面几何的重要性。 //Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<vector> #inclu ...
分类:
其他好文 时间:
2017-12-16 11:24:16
阅读次数:
124