POJ 3253 Fence Repair

来源:互联网 发布:怕出头知乎 编辑:程序博客网 时间:2024/06/01 09:00

题目的大致意思为:有一块长木板,要经过n-1次切割将其切成n块FJ想要的木板,对于每块木板,没切割一次,将会消耗和这条木板长度值相等的金钱,问最少需要多少钱,可将木板切成自己想要的n块。

题解:由题目易知:开销合计应该是木板长度乘以节点深度(看了一张将切木板过程描述为树的图会很清晰),最短板与次短板为兄弟,由此可以慢慢将最短板和次短板合成,插入数组,直到剩下最后一个元素,这个过程就是切木板的逆过程。这道题也是霍夫曼编码的应用(可我不会。。)

代码被我写渣了,也没有过,后来想想可以利用优先队列实现很简单,没想写,就直接找网上代码贴了一份

0 0