解題思路:本題利用霍夫曼編碼的原理解決。這道題本可以用動態規劃來解決,之前已經在UVa10003上做過了這道題,不過今天才發現原來就是霍夫曼編碼的變形,真的是非常巧妙。我們考察切木棍這個過程可以發現,實際上這把總長為L的木棍切割為L1,L2,L3等等我們需要的木棍是一個樹狀結構。那麼最終的總開銷就是sum{木板的長度*節點的深度}。從最優的角度考慮,最短的板對應的深度應當最低。這其實就是霍夫曼編碼的原理。而這一過程可以簡潔地利用優先隊列解決。
代碼:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
#include
#include