QOJ.ac

QOJ

Limite de temps : 2.0 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#15518. 单词生成器

Statistiques

一台机器有 $M$ 个槽位,从 $1$ 到 $M$ 编号,每个槽位可以放置写有字母的卡片。每个槽位 $i$ 只能使用该槽位专属的一组可用卡片来填充。当所有 $M$ 个槽位都被填满时,卡片上的字母从左到右拼接在一起,形成一个单词。

每张卡片在创建单词时只能使用一次。

一个单词被认为是美丽的,当且仅当它的所有字符都互不相同。例如,单词 abchdaab 是美丽的,而单词 abdsaaa 则不是。

任务是确定使用每个槽位的可用卡片可以创建的互不相同的漂亮单词的最大数量。

图 1. 样例中的第一个测试用例。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 10^3$),表示测试用例的数量。接下来对于每个测试用例:

  • 第一行包含一个整数 $M$ ($1 \le M \le 26$)。
  • 接下来 $M$ 行,每行包含一个字符串 $S_i$,表示可用于槽位 $i$ 的卡片集合。保证对于每个 $c \in S_i$,都有 $c \in \{\text{a}, \text{b}, \dots, \text{z}\}$。

所有测试用例中 $|S_i|$ 的总和不超过 $10^6$。

输出格式

对于每个测试用例:

  • 首先,输出一行,包含一个整数 $C$,表示你可以创建的最大单词数量。
  • 接下来输出 $C$ 行,每行包含一个字符串 $W_i$,表示你创建的单词。

样例

输入 1

2
4
aaab
abcd
ccd
ade
3
aaabc
abbbc
abccc

输出 1

3
bcda
adce
abcd
5
abc
abc
abc
cab
bca

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.