NOI 2015 荷马史诗

题目描述:

输入:

输出:

题目正解:

这题看上去很复杂,但实际可以看成这个问题:

给你一堆果子,每次可以合并k个,求合并后的最大值(合并果子)

但这不是哈夫曼树吗?

问题不也改成了构造一颗k叉哈夫曼树

这时我们遇到一个问题:

如果最后一堆不足k个呢?

我们不妨补一些空点(权值为0)

然后补全进行哈夫曼树构造操作。

当然我们可以用堆来维护(其实哈夫曼树本来也是用堆来做的)

posted @ 2019-08-07 08:01  CodeHelper  阅读(171)  评论(0编辑  收藏  举报