【题解】Solution Set - NOIP2024集训Day63 贪心
【题解】Solution Set - NOIP2024集训Day63 贪心
https://www.becoder.com.cn/contest/5685
「NOI2015」荷马史诗
k-Huffman 树。
确保总长度最小,也即是构造一棵 \(\displaystyle\sum_{i\in \text{leaf}} d_iw_i\) 最小的 k 叉树,其中 \(d\) 是深度,\(w\) 是权值(在本题中即为单词的出现次数。
构造方法是:每次取权值最小的 \(k\) 个点合并成一棵新树。
注意:建树前必须满足:\(k-1\mid n-1\)。
Why?
每一次将 \(k\) 个节点合并成 \(1\) 个,等价于删除 \(k-1\) 个,最后剩一个。
如果上述条件不满足,那么最后一次合并剩下的节点数一定不足 \(k\) 个,也就是说根节点的儿子都不满 \(k\) 个了,这样任取一个叶子节点提到根节点的儿子来都是更优的。
「CCO 2020」赶作业 ddl(Exercise Deadlines)
乱猜了一个贪心策略:https://www.luogu.com.cn/record/185871630
实际上,从后往前枚举是为了让后面的数尽量还在后面,并且给前面空出位置。
然后 dsu 维护一下被填充过的连续段就行了。(介于常数实在是太小,然后就拿到了最优解(
「雅礼集训 2017 Day4」洗衣服
很像一个很典的工作调度的模型。加工生产调度
先去复习一下这道题先。
https://www.luogu.com.cn/article/108zf0wl
邻项交换排序的注意事项
这里的 邻项交换排序 指的是,对于两个相邻元素我们给出她们先后顺序的不等关系,继而推广到整个序列的最有排序方式。
而这里这个不等关系,需要同时满足:(其中 \(<\) 表示这个不等关系,\(\not<\) 表示不满足这个不等关系。
满足传递性:\(x<y,y<z\implies x<z\)。
不可比性的传递:\(x\not<y,y\not<x\wedge y\not<z,z\not<y\implies x\not<z,z\not<x\)
(其中不可比性是指:\(x\not<y,y\not<x\)
比如说,不等符号为 \(<\),那么 \(\not<\) 即为 \(=\),所以小于号满足不可比传递性。
12min
(虽然但是,这两道题好像没什么太大的关系。😅
考虑对洗衣和烘干分开讨论。
对于洗衣机,我们拿到每件衣服洗完的最小时间,假设每件衣服直接可以烘干 然后同样算出每件衣服可以最快烘干的时间,最后将这两组时间小的跟大的匹配就行了。
10min
「HNOI2015」菜肴制作
直接用小根堆来做 topo 就行了。
2min
不对,她不是正常的字典序,而是编号小的位置尽量小。
那么我们考虑从后往前从大到小填充,这样我们就把前面的位置留给小的了。
「HEOI2015」兔子与樱花
重新定义:\(a_i=|son(i)|+c_i\)。每次删除一个点 \(a_{fa}\gets a_{fa}+a_u-1\)。
对于子树 \(u\) 内的答案,\(v\in son(u)\),如果 \(v\) 能合并到 \(u\) 上,那么 \(v\) 合并比 \(u\) 继续往上合并是不劣的。
于是我们对 \(son(u)\) 从小到大合并到 \(u\) 即可。
15min