随笔分类 - 堆
摘要:左偏树是用来快速地合并堆的 正常的堆是一颗完全二叉树,我们用笨方法去合并它: 假设我们要将x和y这两个小根堆合并,我们判断一下如果x的堆顶大于y的堆顶,就交换一下x和y,然后继续合并x的某个子孩子和y。 堆被人们所推广的原因就是因为它的时间复杂度比较稳定,根本原因是堆是一颗完全二叉树 但显然的:这样
阅读全文
摘要:题面: 一个长度为 n 的序列,对于每个位置 i 的数 ai都有一个优美值,其定义是:找到序列中最长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] 中位数为 ai (我们比较序列中两个位置的数的大小时,以数值为第一关键字,下标为第二关键字比较。这样的话 [l, r] 的长度只有可能
阅读全文
摘要:这个玩意是可以动态维护第k大的值,每次操作logn。 大根堆Q1 q1:维护集合中较小值的部分的最大值。 小根堆Q2q q2:维护集合中较大值的部分的最小值。 听不懂?没关系,接着看 为了方便,我们用鸡和凤来比喻这两个堆 换句话来说,以鸡头凤尾来比喻这两个堆,q1的堆顶就是鸡头,q2的堆顶就是凤尾;
阅读全文
摘要:题面 这是一道标准的带反悔贪心; 利用大根堆来维护最大值: 当选择了num[i]后,反悔了,反之选择选了num[i-1]和num[i+1]时获利便增加了num[i-1]+num[i+1]-num[i]。 所以当num[i]被选时,我们就可以删去num[i-1]和num[i+1],并把num[i]改成
阅读全文

浙公网安备 33010602011771号