摘要:
所谓Huffman树,就是叶子结点带权的$K$叉树,假设每个叶子的权值为$v$,到根的距离为$dep$,那么最小化$\sum v_i dep_i$就是$Huffman$树的拿手好戏。 为了最小化这个值,显然我们应该尽量让权值大的叶子深度浅, "合并果子" 就是一个典型$2$叉$Huffman$树问题 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "https://lydsy.com/JudgeOnline/problem.php?id=2288" 首先我们可以把同符号的全部合成一个数,第一个如果是负数就扔了,最后一个也是。 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "https://lydsy.com/JudgeOnline/problem.php?id=1150" 显然,这题用贪心转化一下题意就是给你$n 1$个数,选$k$个不相邻的数权值 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "http://poj.org/problem?id=2442" 我们先简化题意,假设只有两行。 那么显然,最小值是$a_1+b_1$。并且次小值集合是$a_2+b_1,a_1+b 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "http://poj.org/problem?id=1456" 把物品按照时间排序,显然$t$天就只能卖$t$个物品。 所以我们把物品一个一个扔进堆里,当某天要卖的物品超过当前天 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "http://poj.org/problem?id=1442" 用对顶堆维护第$k$小即可。保持小根堆大小逐渐递增就行。 时间复杂度:$O(mlogn)$ 空间复杂度:$O(n) 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 题目传送门: "http://poj.org/problem?id=3784" 用一个“对顶堆”动态维护中位数。 一个大根堆维护前半部分的权值,一个小根堆维护后半部分的权值。 新进来一个数如果小 阅读全文
摘要:
浅谈堆: "https://www.cnblogs.com/AKMer/p/10284629.html" 合并果子题目传送门: "https://www.luogu.org/problemnew/show/P1090" 瑞瑞的木板题目传送门: "https://www.luogu.org/probl 阅读全文
摘要:
堆是一种支持插入,查询最值以及删除最值的数据结构。 堆是一棵二叉树,这棵二叉树所有的叶子都集中在最下面两层,并且如果一个点有右儿子的话一定有左儿子,而且最下面的叶子全部都靠在左边。由于这个性质,我们可以很快找到一个点$p$的父亲$p 1$和左右儿子$p1) { if(tree[pos] 1]) sw 阅读全文
摘要:
浅谈栈: "https://www.cnblogs.com/AKMer/p/10278222.html" 题目传送门: "https://lydsy.com/JudgeOnline/problem.php?id=1345" 假设当前序列是单调的,那么显然答案就是从低往高合并的权值和。 假设$a\le 阅读全文