C. 【模版】赫夫编码

    传统题 1000ms 256MiB

【模版】赫夫编码

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

赫夫编码,是一种即使可译编码,即计算出每个字符出现的概率,从小到大、从下至上的排序后,把下面的两个字符用[连接,组成一个整体,再把这个整体与上面的字符用[连接。重复这个操作,让整个数列变成一棵向左旋转 90°90\degree 的二叉树。把手上画好的草图的每个[的上方的直角标记 00 ,下方的直角标记 11 。最后到某个字符的唯一路径就是该字符的赫夫编码。

输入格式

N+1N+1 行。

第一行一个整数 NN,表示字符个数。

接下来 NN 行,每行一个百分数(如:10.5%,60%10.5\%,60\%),表示第 ii 个字符出现的概率。

输出格式

NN 行,每行一个二进制数,表示第 ii 个字符的赫夫编码。

样例

4
12.5%
50%
12.5%
25%
110
0
111
10
3
11.45%
19.19%
69.36%
00
01
1

说明/提示

【提示】

第一个样例的输入不符合该题的规定,因此它不能成为评判代码正确性的标准。

【数据范围】

对于 100%100\% 的数据,满足 1n1001\le n\le 100,所有概率不相等且加和为 100%100\%

Subtask n
1 10\le10
2 50\le50
3 100\le100

【提示】

悄悄告诉你一个秘密:c++的sort函数会超时!

测试

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-2-5 15:45
结束于
2026-2-5 16:45
持续时间
1 小时
主持人
参赛人数
1