随笔分类 - 数据结构 - 可并堆(左偏树)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1455 还是对并查集的 rt 不太熟悉... 注意删去一个堆顶后把它的 fa (rt) 改成儿子合成的新堆顶,这样路径压缩也没有错了。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1078 考察斜堆的性质; 一个点如果没有左子树,也一定没有右子树; 看了这篇精美的博客:http://www.cppblog.com/MatoNo1/archive/2013/03/03/192
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2333 稍微复杂,参考了博客:http://hzwer.com/5780.html 用 set 维护全局的最大值就可以方便地删除和查询了; 大概就是写一堆关于可并堆的子函数吧; 这里还用了斜堆,
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1512 很简单的左偏树; 但突然对 rt 的关系感到混乱,改了半天才弄对; 注意是多组数据! 还可以把 rt 当并查集用,因为并查集实际上也是树,似乎更简洁; 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4003 其实蛮简单的,首先一个城市只会被其子树中的骑士经过,启发我们 dfs 序用可并堆合并子树信息; 先乘后加,和带乘法的线段树一个方法; 如果秒 WA 的话,把读入全写成 %lld 就好了.
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1367 好题啊!论文上的题; 论文上只给出了不下降序列的求法: 先考虑特殊情况,如果原序列上升,那么答案序列相同即可,如果下降,那么答案序列取中位数; 那么对于跌宕起伏的原序列,可以先一个一个加
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3377 左偏树的模板题; 加深了我对空 merge 的理解; 结构体的编号就是原序列的位置。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2809 思路有点暴力和贪心,就是 dfs 枚举每个点作为管理者; 当然它的子树中派遣出去的忍者越多越好,只要不超过预算; 所以需要能够合并子树情况的、能反映最大值节点的数据结构,也就是左偏树(可
阅读全文

浙公网安备 33010602011771号