Huffman
问题:构造一颗包含
直观考虑:要使得权重大的在上面,权重小的在下面
因为对于一个叶子节点,他的贡献是他的权重*他到根的路径节点数,不妨使树转化为:
对每个叶子节点,使得他和根节点之间的所有节点(除去自己)都加上这个叶子结点的权重,就可以把贡献分摊到所有节点上
这样最终的总和就是所有节点的和
于是就有了一个贪心策略:
但是这个算法有一个
这样浪费了深度为
怎么解决?
肯定要使最底下一层的一些节点变成空,于是想到加入
NOI2015 荷马史诗:
条件是没有一个字符串是另一个字符串的前缀,其实就是Huffman
最长
__EOF__
作 者:哈奇莱特
出 处:https://www.cnblogs.com/lighthqg/p/17624946.html
关于博主:这个人很懒 什么也没有留下
版权声明:未获得本人同意请勿随意转载
声援博主:制作不易 点个赞吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现