QOJ.ac

QOJ

حد الوقت: 10 s - 20 s حد الذاكرة: 1024 MB مجموع النقاط: 33

#5970. 打字机猴子

الإحصائيات

你的出版社决定让猴子在键盘上随机敲击来创作伟大的文学作品。你负责监督一只猴子,它使用的键盘上有 $K$ 个按键,每个按键上都标有一个大写英文字母。(可能有多个按键显示相同的字母。)猴子将从一个空字符串开始,重复以下操作 $S$ 次:从键盘上均匀随机地选择一个按键并按下,将该按键对应的字母添加到字符串的末尾。最终生成的字符串长度为 $S$。

你有一个长度为 $L$ 的目标单词,你希望猴子能敲出它。(目标单词不一定是一个真实的英语单词。)这个目标单词在猴子敲出的内容中甚至可能出现多次。(重叠的情况也算在内——例如,如果目标单词是 "ABA",而猴子敲出了 "ABABA",则包含两次目标单词。)

你计划为猴子敲出的每一个目标单词支付一根香蕉。当你去检查猴子的工作时,你会带上最少数量的香蕉,以确保无论猴子敲出什么,你总是有足够的香蕉支付给它。然后,你会为猴子实际敲出的每一个目标单词支付一根香蕉。你会保留剩下的香蕉。

你预计能保留多少根香蕉?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含三行。第一行包含三个用空格分隔的正整数:$K$、$L$ 和 $S$。第二行包含一个长度为 $K$ 的大写英文字母字符串,表示猴子的键盘。第三行包含一个长度为 $L$ 的大写英文字母字符串,表示目标单词。

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 $y$ 是你支付给猴子后预计能保留的香蕉数量。

如果 $y$ 与正确答案的绝对误差或相对误差在 $10^{-6}$ 以内,则被视为正确。请参阅 常见问题解答 以了解其含义以及我们接受的实数格式。

数据范围

$1 \le T \le 100$。

小数据集

$1 \le K \le 7$。 $1 \le L \le S \le 7$。

大数据集

$1 \le K \le 100$。 $1 \le L \le S \le 100$。

样例

输入 1

5
7 6 6
BANANAS
MONKEY
2 3 4
AA
AAA
2 1 2
AB
B
6 2 2
GOOGLE
GO
26 11 100
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ROSENCRANTZ

输出 1

Case #1: 0.0
Case #2: 0.0
Case #3: 1.0
Case #4: 0.8888889
Case #5: 9.0

说明

注意,Case #5 不在小数据集的范围内。

在 Case #1 中,猴子根本没有机会敲出目标单词 "MONKEY"(因为它的键盘缺少 "MONKEY" 中的大部分字母),所以你访问时不需要带任何香蕉,当然也不用支付。可怜的猴子!

在 Case #2 中,猴子保证会敲出 "AAAA",其中包含两次重叠的目标单词 "AAA"。你会带上两根香蕉,然后全部支付出去。

在 Case #3 中,猴子以相等的概率(各 1/4)产生以下输出:"AA"、"AB"、"BA"、"BB"。它们分别包含 0、1、1 和 2 次目标单词。你必须带上 2 根香蕉以应对 "BB" 的情况,但平均而言,你支付的香蕉数量为 $(0 + 1 + 1 + 2) / 4 = 1$。

在 Case #4 中,猴子第一次敲出 "G" 的概率为 1/3,第二次敲出 "O" 的概率为 1/3,因此敲出 "GO" 的概率为 1/9。你会带上一根香蕉,并有 1/9 的概率将其支付出去。

在 Case #5 中,猴子理论上最多可以敲出九次 "ROSENCRANTZ",但即使敲出一次的概率也非常小,以至于与答案的可接受误差范围相比可以忽略不计。

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.