国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【51nod】1117 聰明的木匠

2019-11-08 03:05:55
字體:
供稿:網(wǎng)友

哈夫曼樹 哈夫曼樹(Huffman tree),又名最優(yōu)樹,指給定n個(gè)權(quán)值作為n的葉子結(jié)點(diǎn),構(gòu)造一棵二叉樹,若帶權(quán)路徑長度達(dá)到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹(Huffman tree)。哈夫曼樹是帶權(quán)路徑長度最短的樹,權(quán)值較大的結(jié)點(diǎn)離根較近。若將樹中結(jié)點(diǎn)賦給一個(gè)有著某種含義的數(shù)值,則這個(gè)數(shù)值稱為該結(jié)點(diǎn)的權(quán)。

#include <bits/stdc++.h>using namespace std;#define maxn 50010#define LL long longLL arr[maxn];multiset <LL> s;multiset <LL>::iterator it;int main(){// freopen("1.txt","w",stdout); LL n,sum=0,num=0; scanf("%lld", &n); for(int i=1;i<=n;i++) { scanf("%lld", &arr[i]); s.insert(arr[i]); } while(s.size()>1) { LL a=0; it=s.begin(); a+=*it; s.erase(it); it=s.begin(); a+=*it; s.erase(it); sum+=a; s.insert(a); } 按順序是找到兩段長度最相近的切下去,然后依次進(jìn)行; 所以我們可以按照逆序,找到兩段最短的求和,扔進(jìn)set,再重復(fù)操作,直到set里只有一根最長的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 威海市| 霍州市| 商丘市| 泉州市| 罗江县| 综艺| 沾化县| 乐都县| 浦县| 兰溪市| 乐平市| 天峨县| 通化市| 新乡县| 达日县| 于田县| 南木林县| 灵璧县| 罗田县| 郧西县| 江都市| 淮北市| 正镶白旗| 许昌市| 商洛市| 峨眉山市| 乐昌市| 肇庆市| 漾濞| 张北县| 邹平县| 渝北区| 武隆县| 蓬溪县| 左权县| 霍州市| 崇阳县| 九江市| 大余县| 富源县| 尚义县|