QOJ.ac

QOJ

时间限制: 13 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#14085. 这就是我的风格!

统计

一款新的马里奥派对(Mario Party)迷你游戏“Dicey Dictionary”(骰子字典)刚刚推出,库巴(Bowser)正试图赢得一切。马里奥宇宙的神秘语言 $L$ 由一组单词组成。库巴正在决定在他的定制普通 6 面骰子上放哪些字母,以最大化他获胜的机会。每个骰子的每个面上都有一个字母,而不是数字。

在“Dicey Dictionary”中,你通过在任意长的时间内重复投掷骰子来构建一个单词 $w$。$w$ 初始为空字符串,每次投掷后,投出的字母会被追加到 $w$ 的末尾。在你停止投掷后,如果 $w$ 在语言 $L$ 中,你将获得等于 $w$ 长度的分数。你也可以获得部分分数:如果 $w$ 是语言 $L$ 中某个单词的前缀,你也可以获得 $|w|$ 分,其中 $|w|$ 表示 $w$ 的长度。否则,你获得零分。

库巴想要最大化他的期望得分,从而成为最棒的马里奥派对角色。为了最大化他的期望得分,他应该选择哪些字母放在他的骰子上?

输入格式

输入的第一行包含一个整数 $1 \le T \le 1000$,表示接下来的测试用例数量。

每个测试用例的第一行包含一个整数 $1 \le L \le 200\,000$,表示语言 $L$ 中的单词数量。

接下来有 $L$ 行,每行包含一个字符串。$L$ 中的每个字符串仅由英文小写字母 $a$-$z$ 组成,且在同一个单词中,任何字母出现的次数不超过一次。

所有测试用例中所有字符串的总长度不超过 $1\,000\,000$。

输出格式

对于每个测试用例,输出两行。

第一行必须包含库巴的最优骰子选择,表示为一个由恰好 6 个不同的小写字母按字典序排列组成的字符串。如果有多个解,输出字典序最小的一个。

第二行必须包含如果库巴选择用这个骰子玩游戏时的期望得分。如果你的答案与标准答案的绝对或相对误差不超过 $10^{-6}$,则判定为正确。

样例

输入样例 1

1
5
ab
ac
ad
ae
af

输出样例 1

abcdef
0.27777777777777777778

说明

骰子上的字母选择显然是最优的,因为这些是语言 $L$ 中仅有的字母。

库巴有 $\frac{5}{6}$ 的概率投出一个不是 $a$ 的字母,无论未来如何投掷,得分都为 $0$。这是因为语言 $L$ 中没有以 $b$、$c$、$d$、$e$ 或 $f$ 开头的单词。

他有 $\frac{1}{6}$ 的概率投出 $a$。在这种情况下,如果他选择停止投掷,他的得分为 $1$,对应的期望得分为 $\frac{1}{6} \cdot 1 = \frac{1}{6}$。然而,如果他选择继续投掷,他有 $\frac{5}{6}$ 的概率拼出语言 $L$ 中的一个单词,有 $\frac{1}{6}$ 的概率拼出单词 $aa$(它不是 $L$ 中任何单词的前缀)。因此,再次投掷的期望得分为 $\frac{1}{6} \cdot \frac{5}{6} \cdot 2 = \frac{5}{18}$,这大于 $\frac{1}{6}$。

因此,如果库巴采取最优策略,使用该骰子的期望得分为 $\frac{5}{18}$。

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.