题解

64 条题解

  • 0
    @ 2009-10-06 16:00:42

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    第282个

    以前以为很难......

    没想到是哈夫曼树......水~~~

  • 0
    @ 2009-10-06 14:41:38

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    很水 但是堆竟然调了一些时间

  • 0
    @ 2009-09-26 11:18:34

    为什么,我的程序老师通不过啊,连原字符串长度的8倍都是错的,真奇怪

  • 0
    @ 2009-09-19 09:55:19

    郁闷,看了题解,发现真的是哈夫曼树(这算DP吗?).....

  • 0
    @ 2009-09-16 20:16:22

    Flag    Accepted

    题号   P1079

    类型(?)   动态规划

    通过   250人

    提交   806次

    通过率   31%

    难度   3

    我果然是250..

    特判错了N次.=.=

  • 0
    @ 2009-09-13 11:01:33

    真的是难度为3的合并果子.......ORZ......

    那个 统计每个字母出现次数 然后按照合并果子的方法合并

    每一步的操作值都加进去

    注意特判只有一种的一行字母的情况

    ..........................................

  • 0
    @ 2009-09-07 23:44:08

    特判不合并的情况

    输出

    length(母串长度)*8,length(母串长度),‘8.0’

  • 0
    @ 2009-08-25 10:50:53

    虽然楼下有说过,

    还是忍不住提醒一下:

    一定要考虑当字符串为一个相同字符时!!!

    还有,如果有谁知道哈弗曼数的正确性证明。

    拜托+QQ1003545371

  • 0
    @ 2009-08-22 00:42:09

    只要编码满足任意两个i j i的编码不是j的编码的前缀就行,于是考虑构造一棵trie满足节点是01,且每个叶子都对应了一个字母,且根到叶子的距离和*对应单词权最小..

    接下来考虑每一棵可行的树,实际上等于N棵只有一个叶子节点且树权为单词权的树,按照下面规则合并得到,规则是:

    1:由给定的n个权值构造n棵树只有一个叶子结点的二叉树,得到一个二叉树的合F; 2:再F中选取二棵二叉树作为左,右子树构造一棵新的二叉树,这棵树的根结点的权值为左右子树根结点权值之和。 3:在集合F中删除作为左右子树的二棵二叉树,并将新建的二叉树加入到集合F中。 4:重复2 ,3两步,当F中只剩下一棵二叉树时,结束

    可以看出,如果能找到使得最后代价最小的合并顺序,那么就他就一定是答案,可以发现最小的合并顺序求法就是合并果子,结束。

  • 0
    @ 2009-08-13 15:59:11

    一定要考虑当字符串为一个相同字符时!!!

    万恶.... 交了3次都没想到,感谢zhengfangyi兄的提醒...

  • 0
    @ 2009-08-04 18:16:35

    lsss

    为什么要保证任一个字符的编码不为另一字符的前缀?

    保证任意某k1个编码不等于任意某k2个编码的排列不就可以了吗?

    如 AB

    A:10

    B:100

    10100 难道不唯一

  • 0
    @ 2009-07-27 12:51:49

    一定要特判一下只有1种字母的情况!!!!

    就为这个交了3次。

  • 0
    @ 2009-07-23 11:05:22

    哈夫曼编码

    为了保证编码的唯一性

    需要保证任一个字符的编码不为另一字符的前缀

    因此建树后,从跟起向左儿子走表示编码加0,向右儿子走表示编码加1

    程序实现时其实没有建树的必要

  • 0
    @ 2009-07-22 10:42:26

    这不就是合并果子么......太水了

  • 0
    @ 2009-06-25 22:06:41

    一个字母的时候……

    试了一个小时,最后毅然决然放弃堆排,改用朴素查找,唉,以后哪天上天赐我神力我再用堆排做这题吧。

  • 0
    @ 2009-06-16 18:29:06

    实践证明,打死不用while

  • 0
    @ 2009-05-02 14:23:42

    终于不running了~~~

  • 0
    @ 2009-03-12 21:13:02

    可是还是不怎么懂haffman编码

  • 0
    @ 2009-01-07 23:25:44

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    就是哈夫曼树!

  • 0
    @ 2008-11-12 20:30:13

    为什么叫最优二叉树呢?不是haffman树吗?

信息

ID
1079
难度
6
分类
贪心 点击显示
标签
(无)
递交数
1436
已通过
417
通过率
29%
被复制
6
上传者