時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:11443
解決:5201
題目描述:哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。
輸入:輸入有多組資料。
每組第一行輸入乙個數n,接著輸入n個葉節點(葉節點權值不超過100,2<=n<=1000)。
輸出:輸出權值。
樣例輸入:
51 2 2 5 9
樣例輸出:
37
2023年北京郵電大學計算機研究生機試真題
發現一點:哈夫曼樹的帶權路徑是非葉結點的值之和,所以可以利用這個性質用最小堆來實現
#include#include#include#includeusing namespace std;
int array[1005];
int main()
printf("%d\n",sum);
} return 0;
}
題目1172 哈夫曼樹
題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...
題目1172 哈夫曼樹
時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 4902 解決 2097 題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行...
30 題目1172 哈夫曼樹
題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...