
堆
Eirlys_North
这个作者很懒,什么都没留下…
展开
-
bzoj 1029 贪心+堆
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全 毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需 要一定的时间。同时,修理工人修理完一个建筑才能修理原创 2016-12-18 17:06:50 · 504 阅读 · 0 评论 -
bzoj 1572 贪心+堆
题意:1000000000个单位时间,给定n个工作和各自的截止时间和利润,每在截止时间之前(或当天)完成工作即可获得该工作的利润,问最大获得的利润是多少 经典贪心 把截止时间从小到大排序,对我们选择完成的工作的利润维护一个小根堆。 从1到n扫,能完成当前工作就完成,并将该工作的利润插入小根堆中; 如果不能完成,判断该工作的利润是否大于我们选择完成的工作的最小利润(小根堆堆顶),如果大于则替原创 2017-03-01 10:58:54 · 465 阅读 · 0 评论 -
bzoj 1724 堆+贪心
Description Farmer John想修理牧场栅栏的某些小段。为此,他需要N(1<=N<=20,000)块特定长度的木板,第i块木板的长度为Li(1<=Li<=50,000)。然后,FJ去买了一块很长的木板,它的长度正好等于所有需要的木板的长度和。接下来的工作,当然是把它锯成需要的长度。FJ忽略所有切割时的损失——你也应当忽略它。 FJ郁闷地发现,他并没有锯子来把这块长木板锯开。于原创 2017-03-01 11:45:37 · 480 阅读 · 0 评论 -
poj 3784 && 洛谷 P1168 对顶堆
题意:一组数按顺序加入数组,每奇数次加入的时候就输出中位数 对顶堆是一种可以O(logn)维护在线第K小值的算法 大根堆:维护集合中较小值的部分的最大值。 小根堆:维护集合中较大值的部分的最小值。 注意到两个堆中的元素各自是单调的,两个堆间也是单调的。 也就是说,大根堆中的任何一个元素都不大于小根堆中的任何一个元素 维护中位数: 构建一个大根堆g和小根堆l,初始均为空...原创 2017-02-10 14:05:38 · 1308 阅读 · 0 评论 -
bzoj 3689 trie树+堆
题意:给定一个非负整数序列,两两异或,求前k小的异或值 显然,如果一个数想和其他数异或尽量小,肯定是化为二进制后,从最高位起能选这一位相同的就选能和这一位相同的,实在没有再选和这一位不同的(当这一位不同,异或后的答案一定有2^i),这一位确定后再看下一位 那么我们就对所有数的二进制建trie树,同时统计size(有几个数的这一位和当前数是相同的) 然后所有数与其他数异或值的第二小(第一小是自原创 2017-04-20 14:50:13 · 541 阅读 · 0 评论 -
洛谷 P1090 合并果子 堆维护动态最小值
题意:n个数,每次任取两个数合并,合并两个数的代价即为两数和,直至只剩下一个数,即进行(n-1)次合并。求代价和最小 贪心,每次合并最小值和次小值(取两次当前最小值),并将合并所得的新数加入比较 利用堆动态维护最小值 #include<stdio.h> int n; int c[500010]; int lowbit(int x) { return(x & ...原创 2019-09-20 23:24:44 · 270 阅读 · 0 评论