Evanyou Blog 彩带

随笔分类 -  数据结构——可并堆

摘要:可并堆$(Mergeable\ Heap)$是一类抽象数据类型,它除了支持一般的优先队列的基本操作以外,还支持额外的合并操作。而可并堆有多种,包括斜堆,左偏树,二项堆,配对堆,斐波那契堆等。 这里我们只介绍左偏树($Leftist\ Tree$),它是最常用的一种可并堆。至于为什么说最常用,我们会在 阅读全文
posted @ 2018-11-07 22:32 HolseLee 阅读(1426) 评论(0) 推荐(4)
摘要:题目传送门 棘手的操作 题目描述 有N个节点,标号从1到N,这N个节点一开始相互不连通。第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 x v: 将第x个节点的权值增加v A2 x v: 将第x个节点所在的连通块的所有节点的权值都增加 阅读全文
posted @ 2018-08-28 21:47 HolseLee 阅读(203) 评论(0) 推荐(0)
摘要:题目传送门 逃跑的Barn 题目描述 It's milking time at Farmer John's farm, but the cows have all run away! Farmer John needs to round them all up, and needs your hel 阅读全文
posted @ 2018-08-28 12:33 HolseLee 阅读(183) 评论(0) 推荐(0)
摘要:前言 之前我一直都这么以为:$Fibonacci$堆虽然快,但是代码复杂度反人类;二项堆打起来麻烦的死,而且又难理解又难调;综合起来还是左偏树最好!!! 直到我知道了配对堆这个东西。。。。。。 我$HolseLee$就是省选爆零,暴力分都拿不到,也绝不会学左偏树以外的可并堆!呵呵,配对堆真快,爆了左 阅读全文
posted @ 2018-08-14 21:03 HolseLee 阅读(933) 评论(4) 推荐(4)
摘要:题目传送门 数字序列 题目描述 给定一个整数序列 a1​,a2​,⋅⋅⋅,an​ ,求出一个递增序列 b1​<b2​<⋅⋅⋅<bn​ ,使得序列 ai​ 和 bi​ 的各项之差的绝对值之和 ∣a1​−b1​∣+∣a2​−b2​∣+⋅⋅⋅+∣an​−bn​∣ 最小。 输入输出格式 输入格式: 第一行为 阅读全文
posted @ 2018-06-21 21:14 HolseLee 阅读(249) 评论(0) 推荐(0)
摘要:题目传送门 分析: 好吧,其实没什么好分析的,左偏树裸题。 Code: 阅读全文
posted @ 2018-04-13 20:26 HolseLee 阅读(181) 评论(0) 推荐(0)
摘要:题目传送门 分析:刚看到题目是有点没方向,(毕竟我这蒟蒻才刚学左偏树)然后看了看别的大佬的博客以后大概懂了,将每个骑士丢进一颗左偏树中,然后进行dfs对每一个城池进行搜索,如果某一个骑士在该城池死亡就将其从弹出并记录。然后过程中下放标记就差不多OK了。具体还是看代码吧。 Code: 阅读全文
posted @ 2018-03-22 21:15 HolseLee 阅读(189) 评论(0) 推荐(0)
摘要:题目传送门 分析,首先要查找一个认识的猴子群体(简称猴群)中力气最大的猴子,又要合并两个打完架的猴群,很明显是可并堆的性质,所以这题就是一个左偏树模板。那么套模板就可以了,不过注意,因为要把力气最大的猴子的力气减半,所以就先把它从猴群中删除,减半后放回去再求现在猴群中的力气最大值就可以了。 Code 阅读全文
posted @ 2018-03-15 21:46 HolseLee 阅读(172) 评论(0) 推荐(0)