![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
堆
1
哆啦c梦~~
嵌入式开发小白
展开
-
AcWing 148. 合并果子 + 荷马史诗(Huffman树问题 + 堆)
题目描述在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达耗费的体力最少原创 2020-10-26 17:55:42 · 257 阅读 · 0 评论 -
AcWing 146. 序列(堆 + 多路归并)
题目描述给定m个序列,每个包含n个非负整数。现在我们可以从每个序列中选择一个数字以形成具有m个整数的序列。很明显,我们一共可以得到nm个这种序列, 然后我们可以计算每个序列中的数字之和,并得到nm个值。现在请你求出这些序列和之中最小的n个值。输入格式第一行输入一个整数T,代表输入中包含测试用例的数量。接下来输入T组测试用例。对于每组测试用例,第一行输入两个整数m和n。接下在m行输入m个整数序列,数列中的整数均不超过10000。输出格式对于每组测试用例,均以递增顺序输出最小的n个序列和原创 2020-10-26 12:44:34 · 217 阅读 · 0 评论 -
堆 + 模板题---数组模拟堆
题目描述维护一个集合,初始时集合为空,支持如下几种操作:“I x”,插入一个数x;“PM”,输出当前集合中的最小值;“DM”,删除当前集合中的最小值(数据保证此时的最小值唯一);“D k”,删除第k个插入的数;“C k x”,修改第k个插入的数,将其变为x;现在要进行N次操作,对于所有第2个操作,输出当前集合的最小值。输入格式第一行包含整数N。接下来N行,每行包含一个操作指令,操作指令为”I x”,”PM”,”DM”,”D k”或”C k x”中的一种。输出格式对于每个输出指令“P原创 2020-10-25 18:21:46 · 196 阅读 · 0 评论