题目名称 2021. [NOI 2015]荷马史诗
输入输出 epic.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 20
题目来源 GravatarSatoshi 于2015-07-23加入
开放分组 全部用户
提交状态
分类标签
哈夫曼树 优先队列 NOI
分享题解
通过:80, 提交:176, 通过率:45.45%
Gravatarlihaoze 100 0.212 s 4.30 MiB C++
GravatarTheresis 100 0.281 s 8.22 MiB C++
GravatarYoungsc 100 0.317 s 0.57 MiB C++
Gravatar布洛尼亚 100 0.348 s 2.15 MiB C++
GravatarHZOI_蒟蒻一只 100 0.385 s 0.59 MiB C++
Gravatar神利·代目 100 0.390 s 0.37 MiB C++
GravatarFmuckss 100 0.408 s 4.90 MiB C++
Gravatar葳棠殇 100 0.414 s 0.31 MiB C++
Gravatar0 100 0.420 s 0.77 MiB C++
GravatarAnson 100 0.421 s 0.32 MiB C++
关于 荷马史诗 的近10条评论(全部评论)
麻麻,我会手打堆啦
GravatarHzoi_Mafia
2017-10-28 16:33 6楼
数据范围题目弄错了,应该是n<=10,0000
Gravatar竹杖芒鞋
2017-06-17 19:07 5楼
评测插件有问题!!!
GravatarImone NOI2018Au
2017-05-19 17:00 4楼
为什么这几道题我怎么看怎么和原题都不太一样........还有数据范围也不太对啊....
GravatarFmuckss
2016-06-12 13:42 3楼
回复 @铁策 :
这就是pascal和cpp的区别、、
完美的体现在代码篇幅上
GravatarConanQZ
2016-03-20 00:34 2楼
题目描述SMG。。。
Gravatar铁策
2015-12-31 22:00 1楼

2021. [NOI 2015]荷马史诗

★★☆   输入文件:epic.in   输出文件:epic.out   评测插件
时间限制:1 s   内存限制:512 MiB

【题目描述】

一部《荷马史诗》有$n$种不同的单词,从$1$到$n$编号。

其中第$i$种单词出现的总次数为$w_i$。Allison想用$k$进制串$s_i$来替换第$i$种单词,

使得任意$1\leq i,j\leq n,i\neq j$都有,$s_i$不是$s_j$的前缀

举个栗子:

A:"abcdirutyiuertyiryt"

B:"abcdir"

则B是A的前缀

$k$进制字符串:每个字符是$0$到$k-1$之间的整数。

一个字符串被称为$k$进制字符串,当且仅当它的每个字符是$0$到$k−1$之间(包括$0$和$k−1$)的整数。

字符串$str1$被称为字符串$str2$的前缀,当且仅当:存在$1\leq t\leq m$,使得$str1 = str2[1\ldots t]$。其中,$m$是字符串$str2$的长度,$str2[1\ldots t]$ 表示$str2$的前$t$个字符组成的字符串。

【输入格式】

第一行两个正整数$n,k$,表示$n$个单词使用$k$进制字符串替换。

接下来$n$行,第$i+1$行包含1个非负整数$w_i$,表示第$i$中单词的出现次数。

【输出格式】

第一行为《荷马史诗》经过编码后的最短长度。

第二行为保证最短总长度的情况下,最长字符串$s_i$的最短长度。

【样例输入1】

4 2
1
1
2
2

【样例输出1】

12
2

【样例输入2】

6 3
1
1
3
3
9
9

【样例输出2】

36
3

【数据范围与提示】

对于40%的数据$k=2$;

对于45%的数据$n\leq 1,000$;

对于100%的数据,$k\leq 9,n\leq 10^5$。

选手请注意用64位整数

对于每个测试点:

若第一行正确,得到40%的分数;

若完全正确,得到100%的分数。

【来源】

NOI 2015 Day 2 T1