【题解】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<\) 表示不满足这个不等关系。

  1. 满足传递性:\(x<y,y<z\implies x<z\)

  2. 不可比性的传递:\(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

posted @ 2024-10-31 08:48  CloudWings  阅读(11)  评论(0编辑  收藏  举报