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