堆
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
P4053 [JSOI2007]建筑抢修
题意:问能选取最大多少个数的建筑, 满足在规定时间内,每个建筑的建立都不能超过截止时间。 解题思路:先按照截止日期排序,如果能在截止日期内完成,那么我们就尽量往里扔,如果不能完成,那么我们选择大根堆中最大的看看它是不是比当前任务耗时大,如果耗时大,那么我们一定能把它抛下,并且完成任务,并且总耗时最少。 代码: #include<iostream> #include<algorithm> #include<cstring> #include<queue> #i.原创 2020-09-07 19:11:36 · 234 阅读 · 0 评论 -
对顶堆P1801 黑匣子
题目链接:看看 对顶堆?如图 对顶堆就是由小根堆和大根堆所组成,小根堆的值都比大根堆的大,这种数据结构可以用来动态查询数组中的前k小值,我们要维护大根堆的数量是k,当大根堆的size大于小根堆,就把最大值push进小根堆,如果大根堆数量不够,就往小根堆里拿最小值。 代码: #include<iostream> #include<algorithm> #include<cstring> #include<queue> using namespace std; t原创 2020-09-07 15:10:59 · 245 阅读 · 0 评论