国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 大化| 凤山县| 元氏县| 翁源县| 门头沟区| 常宁市| 福贡县| 茌平县| 安平县| 刚察县| 乡宁县| 河南省| 雷州市| 三亚市| 常德市| 余姚市| 顺义区| 团风县| 松溪县| 镇沅| 琼结县| 团风县| 镇巴县| 屯留县| 五莲县| 屏东市| 平凉市| 安图县| 衡东县| 湟源县| 吴桥县| 河津市| 长子县| 大兴区| 全州县| 平邑县| 永修县| 都江堰市| 铁力市| 富顺县| 简阳市|