
哈夫曼树
yxr0105
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj4198 [Noi2015]荷马史诗 k叉哈夫曼树
k叉哈夫曼树 二叉就是贪心,找最小的两个合并,想当年记得是用。。两个数组存的吧。。只是tooyoungtoosimple。。虽然是O(n),优先级队列O(nlogn)。。 k叉的是添加x个w值为0节点,使得最后组成的是每个节点要么是叶子,要么是有k个儿子,数学(?)推导一下即可。#include<iostream>#include<cstdio>#include<algorithm>#in原创 2016-05-15 12:58:57 · 893 阅读 · 0 评论 -
bzoj4198 [Noi2015]荷马史诗
题意:k叉哈夫曼树 题解:2叉哈夫曼树的做法我们知道后,k叉哈夫曼树就是每次找前k小的。但是现在的问题是可能有非满叉结点。考虑到非满叉结点一定是在最后一层,所以只需要补x个0即可。推一推知道是x = k - 1 - (n - 1) % (k - 1)。#include<bits/stdc++.h>#define ll long longusing namespace std;struct N原创 2017-11-17 19:49:48 · 338 阅读 · 0 评论