JOBDU1172 哈夫曼樹

2022-05-20 19:01:49 字數 466 閱讀 6024

題目大意:

給你一堆權值,求這些權值建成哈夫曼樹後的wpl。

思路:哈夫曼樹的wpl等於各非葉子結點權值之和。

所以直接貪心模擬構建哈夫曼樹的過程。

先把所有的權值放在乙個堆中,然後每次取裡面最小的兩個數加到答案中,並將他們的和重新放到堆中。

整個過程並不需要把樹存下來。

1 #include2 #include3 #include4 inline int

getint()

11 __gnu_pbds::priority_queue >q;

12int

main()

19int ans=0;20

for(register int i=1;i)

28 printf("

%d\n

",ans);29}

30return0;

31 }

1172 哈夫曼樹

題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...

題目1172 哈夫曼樹

題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...

題目1172 哈夫曼樹

時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 4902 解決 2097 題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行...