ZOJ 1117 Entropy 哈夫曼編碼

2021-06-13 19:07:13 字數 459 閱讀 9634

按照普通的哈夫曼編碼來做就可以,只有乙個字元的時候要特殊處理下

#include #include #include #include #include #include using namespace std;

const int maxn=1010;

char text[maxn];

int cnt[maxn],father[maxn];

struct node

}ns[maxn];

priority_queue,greater>q;

int main()

for(int i=0;i<96;++i)

ans+=cn*cnt[i];

}} printf("%d %d %.1lf\n",8*len,ans,(8.0*len)/ans);

} return 0;

}

poj 1521Entropy(哈弗曼編碼)

今天上機課寫了這道題,已經是上上週留的作業了,有幾天沒刷演算法題了,哈弗曼編碼,貪心求解。思路 就是建立乙個二維陣列,乙個儲存權值w,另乙個儲存父節點座標f,然後分別找到權值最小的兩個點,生成 乙個新的節點加入該陣列中,將這兩個最小的點從陣列中刪除一直這樣迴圈,直到找不到兩個沒有父節點的點為止,就 ...

HDU 1053 Entropy 哈夫曼樹

題意 根據哈夫曼編碼原則壓縮乙個字串,問壓縮後的大小和壓縮比。思路 就是寫一棵哈夫曼樹。ps 第一次寫哈夫曼樹,寫得好醜 problem hdu 1053 author nmfloat include include include include include include include i...

HDU1053 Entropy 哈夫曼樹

認真讀題,別怕題長,此題考查的就是哈夫曼樹並求出最小編碼值,注意每一次要將陣列清0,否則會出錯!ac include include using namespace std define m 1000000 struct node ha 100 int main int k 0 for i 0 i ...