N叉哈夫曼树
提交数: 215, 通过率: 13.02%, 平均分: 28.23
题目描述:
以N进制编码方式对一个英文字串中的字符进行编码,每个不同的字符其编码不同.使得由新的编码替代原串后总码长最小,且输入0,1,2,...,N-1构成的数字串后,依照该编码方式可以正确的对译出唯一的英文原串.
如: N=3 英文原串为 ABBCBADDACE
其对应的一种编码方式为
A:00
B:01
C:020
D:021
E:022
原串对译后的编码为000101020010002102100020022
其码长为27
若输入编码串 0102002200
则对应的英文原串为 BCEA
输入格式:
第一行,一个整数n,2<=n<10。
第二行,一串由大写字母组成的字符中,当中没有空格,并且总长度小于1,000。
输出格式:
一个整数,表示由新的编码替代原串后编码的最小长度。
样例输入:
3 ABBCCCDDDDEEEEEFFFFFF
样例输出:
34
提示:
此题以哈夫曼树来解答是非常适宜的.N为此哈夫曼树的分叉数。
时间限制: 1000ms空间限制: 256MB