感觉是一个平凡的结论,但是我想了一年怎么证!!!
结论:序列 \(a\) 生成的哈夫曼树,第 \(i\) 个元素的深度为 \(\mathcal{O}(\log\sum a_i-\log a_i+1)\)。
考虑哈夫曼树的生成过程:每次选取两个权值最小的结点合并。假设 \(x,y,z\) 为序列中最小的三个元素,那么与 \(x+y\) 合并的下一个元素 \(w\) 一定满足 \(w\geq z\),由于 \(x\leq y\leq z\),所以 \(w\geq z\geq\dfrac{x+y}{2}\),所以 \(x+y\) 与 \(w\) 合并之后,其所在的子树规模至少变为原来的 \(1.5\) 倍,加上第一次合并,元素 \(i\) 的合并次数不超过 \(\mathcal{O}(\log\sum a_i-\log a_i+1)\),证明完毕。
练习:分析 P7124 [Ynoi2008] stcm 的复杂度。
标签:geq,log,哈夫曼,sum,元素,合并 From: https://www.cnblogs.com/yllcm/p/17103111.html