1918_算法设计例题:哈夫曼编码(贪心)

2022-5-16 18:17| 发布者: Hocassian| 查看: 43| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-3-89504146186600-Problem List-采集的数据-后羿采集器.html

Pro.ID

1918

Title

算法设计例题:哈夫曼编码(贪心)

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1918

AC

124

Submit

644

Ratio

19.25%

时间&空间限制

  • Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others)
  • 描述

    给定字符出现的频率,构造哈夫曼编码。

    设定哈夫曼树左子树编码为0,右子树编码为1。权值相同时,输入靠前的为左子树。

    输入

    输入的第一行为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是一个整数n( n ≤ 65 ),表示有n个字符需要编码。接下来n行,每行为一个字符c和一个整数w,分别表示字符的标识以及该字符出现的频率。

    输出

    Description

    给定字符出现的频率,构造哈夫曼编码。

    设定哈夫曼树左子树编码为0,右子树编码为1。权值相同时,输入靠前的为左子树。

    Input

    输入的第一行为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是一个整数n( n ≤ 65 ),表示有n个字符需要编码。接下来n行,每行为一个字符c和一个整数w,分别表示字符的标识以及该字符出现的频率。

    Output

    对应每个测试样例输出一行,格式为"Case #:",其中'#'表示第几个测试样例(从1开始计),接下来n行,格式为"c w x",其中c为字符标识,w为该字符的频率,x为该字符的哈夫曼编码,以读入的字符顺序依次输出。

    Sample Input

    1
    6
    a 45
    b 13
    c 12
    d 16
    e 9
    f 5

    Sample Output

    Case 1:
    a 45 0
    b 13 101
    c 12 100
    d 16 111
    e 9 1101
    f 5 1100

    Author

    样例输入

    1
    6
    a 45
    b 13
    c 12
    d 16
    e 9
    f 5

    样例输出

    Case 1:
    a 45 0
    b 13 101
    c 12 100
    d 16 111
    e 9 1101
    f 5 1100

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部