poj 3253 Huffman树(最优二叉树)

Huffman树又叫做最优二叉树,表示带权路径长度最短的树,对于每一个叶子节点来说,代价为点权*路径深度,解决问题的思路为将最小的两个节点成树,然后插回原队列,重复这一过程。
Huffman编码就是利用了Huffman树的过程,将频率当做点权,而树的结构本身就保证了没有公共前缀。

Problem:
有一个足够长的木板,给定n个需求得木块儿,切n-1刀可以切成这n个木块儿,每一刀的代价是当前所切木板的长度,求最小代价。
Solution:
整个过程就是一颗二叉树,而代价就是每一个叶子节点的权*深度,所以是典型的Huffman问题。
note:
一定要注意数据的大小,要用long long。

#include<cstdio>
#include<iostream>
#include<sstream>
#include<cstdlib>
#include<cmath>
#include<cctype>
#include<string>
#include<cstring&g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值