1270 基礎練習 Huffuman樹

2021-07-25 22:53:58 字數 971 閱讀 8841

1270: 基礎練習 huffuman樹

時間限制: 1 sec  記憶體限制: 512 mb [

提交][

狀態][

討論版]

huffman樹在編碼中有著廣泛的應用。在這裡,我們只關心huffman樹的構造過程。

給出一列數=,用這列數構造huffman樹的過程如下:

1. 找到中最小的兩個數,設為pa

和pb,將pa

和pb從中刪除掉,然後將它們的和加入到中。這個過程的費用記為pa

+pb。2. 重複步驟1,直到中只剩下乙個數。

在上面的操作過程中,把所有的費用相加,就得到了構造huffman樹的總費用。

本題任務:對於給定的乙個數列,現在請你求出用該數列構造huffman樹的總費用。

例如,對於數列=,huffman樹的構造過程如下:

1. 找到中最小的兩個數,分別是2和3,從中刪除它們並將和5加入,得到,費用為5。

2. 找到中最小的兩個數,分別是5和5,從中刪除它們並將和10加入,得到,費用為10。

3. 找到中最小的兩個數,分別是8和9,從中刪除它們並將和17加入,得到,費用為17。

4. 找到中最小的兩個數,分別是10和17,從中刪除它們並將和27加入,得到,費用為27。

5. 現在,數列中只剩下乙個數27,構造過程結束,總費用為5+10+17+27=59。

輸入的第一行包含乙個正整數n(n

<=100)。

接下來是n個正整數,表示p

0, p

1, …, pn

-1,每個數不超過1000。

輸出用這些數構造huffman樹的總費用。

樣例輸入55 3 8 2 9

樣例輸出59

#includeint count=0;

int huffman(int arr,int start,int end)

for(i=start;i

練習題 基礎練習

第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...

Python基礎練習

1.python 為什麼不需要變數名和變數型別宣告?python語言中物件的型別和記憶體都是執行時確定的。在建立也就是賦值時,直譯器會根據語法和右側的運算元來決定新物件的型別。2.python 為什麼不需要宣告函式型別?待補充3.python 為什麼應當避免在變數名的開始和結尾使用雙下劃線?合法識別...

c 基礎練習

問題 f 土豪學長算成績 題目描述 給協會裡的同學排成績對於土豪學長來說總是乙個很麻煩的事情,因為土豪學長不會使用excel 所以每次他都是手工排序的。現在協會的人數越來越多,手工排序變的不現實了,他希望你能夠幫他寫乙個程式給同學們拍名次。考試的科目有語文,數學,英語,物理,化學,生物。首先按照總分...