E. 字典序(word)

    传统题 1000ms 256MiB

字典序(word)

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

题目描述

给定 nn 个仅由小写英文字母组成的字符串 S1,S2,…,SnS_1, S_2, \dots, S_n。定义两个字符串之间的比较规则如下:

  • 对于每个字符 c∈{a,b,…,z}c \in \{\text{a}, \text{b}, \dots, \text{z}\},记其在字符串中的出现次数为 cntc(S)\text{cnt}_c(S)。
  • 按照字符从 aa 到 zz 的顺序,依次比较 cntc(Si)\text{cnt}_c(S_i) 与 cntc(Sj)\text{cnt}_c(S_j):
    • 若当前字符 cc 的出现次数相同,则继续比较下一个字符;
    • 若出现次数不同,则出现次数 较多 的字符串被认为 更小。
  • 若对于所有字符 a∼za \sim z,两个字符串的出现次数均相同,则按照字典序比较两个字符串,字典序较小的字符串更小。

字典序说明:给定两个字符串 AA 和 BB,从左到右逐个比较对应位置的字符,直到出现不同字符为止。设在第一个不同的位置上,AA 的字符小于 BB 的字符,则 AA 的字典序小于 BB。若一个字符串是另一个字符串的前缀,则长度较短的字符串字典序更小。

输入格式

从文件 word.in 中读入数据。

第一行输入一个整数 nn,表示字符串的数量。

第二行输入 nn 个字符串 S1,S2,…,SnS_1, S_2, \dots, S_n。

输出格式

输出到文件 word.out 中。

输出一行,包含 nn 个字符串,表示按照题目定义的比较规则排序后的字符串。

样例 1 输入

5
aab aac adc baa cab

样例 1 输出

aab baa aac cab adc

样例 2 输入

10
a c ab ba aabb bbaa abc cba aaaaab bbbbb

样例 2 输出

aaaaab aabb bbaa abc cba ab ba a bbbbb c

样例 3

见选手目录下的 word/word3.in 和 word/word3.ans。 该测试用例满足测试点 6∼76 \sim 7 的约束条件。

数据范围

对于 100%100\% 的数据,1≤n≤2×105,1≤∣si∣≤101 \le n \le 2 \times 10^5, 1 \le |s_i| \le 10。其中 ∣si∣|s_i| 表示字符串 sis_i 的长度。

各测试点的附加限制如下表所示:

测试点编号 n≤n \le 特殊性质
11 1010 A
2∼32 \sim 3 100100 无
4∼54 \sim 5 10001000
6∼76 \sim 7 1000010000
8∼108 \sim 10 200000200000

特殊性质 A:每个字符串的长度均为 11。

点击下载大样例

多校联训第一场第二场

未参加
状态
已结束
规则
IOI
题目
8
开始于
2026-4-8 15:00
结束于
2026-4-16 3:00
持续时间
180 小时
主持人
参赛人数
15