QOJ.ac

QOJ

时间限制: 20 s 内存限制: 1024 MB 总分: 41

#5912. 祝你好运

统计

Maryam 和 Peiling 最近在练习一个新的数字戏法,她们需要你的帮助来完成它。戏法过程如下:Maryam 首先挑选 $N$ 个独立的随机整数,每个数都在 $2$ 到 $M$ 之间(包含 $2$ 和 $M$),每个数出现的概率相等,并将它们写在 $N$ 张卡片上,每张卡片写一个数。注意,有些数字可能相同。然后,她重复以下步骤 $K$ 次:取一个随机的卡片子集(每张卡片被选中的概率为 $0.5$),并写下这些卡片上数字的乘积。完成所有步骤后,她将 $K$ 个乘积展示给 Peiling,Peiling 的目标是在已知 $N$、$M$ 和这些乘积的情况下,猜出最初的 $N$ 个数字。

一个 $N=3$、$M=4$、$K=4$ 的游戏示例如下:首先,Maryam 挑选了 $3$ 个 $2$ 到 $4$ 之间的随机整数——假设她随机选择了 $A_1=3$、$A_2=3$ 和 $A_3=4$。然后,她计算了这三个数字的随机子集的四个乘积。例如,假设这些乘积为 $A_1 \times A_2=9$、$A_3=4$、$A_1 \times A_2 \times A_3=36$ 以及 $1=1$(最后一个乘积中没有数字,因此等于 $1$)。Peiling 从她那里收到了数字 $9, 4, 36, 1$,并且被告知 $N=3$,$M=4$。在这种情况下,仅看到数字 $36$ 就足以找出最初的数字,因为将其表示为最多 $3$ 个数字(每个数字最大为 $4$)的乘积的唯一方法是 $3 \times 3 \times 4$。所以 Peiling 说最初的数字是 $3, 3$ 和 $4$,观众对此印象深刻。

在其他一些情况下,猜测原始数字并不那么简单。例如,所有乘积都等于 $1$ 的情况是有可能发生的。在这种情况下,无法得知关于隐藏数字的任何信息,因此 Peiling 不能保证总是正确。然而,Peiling 知道 Maryam 完全按照上述过程操作:她首先选择 $N$ 个独立的均匀分布在 $2$ 到 $M$ 之间的整数,然后选择 $K$ 个独立的随机子集,以 $0.5$ 的概率独立地将每个数字放入每个子集中。请帮助 Peiling 利用这些知识做出更好的猜测!

实现细节

这个问题对于 Code Jam 来说有点不同寻常。你将获得 $R$ 个独立的集合,每个集合包含 $K$ 个数字,你需要为每个集合打印一个答案——这部分与往常一样。但是,你不需要全部答对!如果你的答案中至少有 $X$ 个集合是正确的,你的解法将被视为正确,其中 $X$ 的值在下方的“数据范围”中给出。不过,即使对于你答案不正确的集合,你也必须遵循输出格式。在任何集合中,唯一可以出错但仍允许你被判定为正确的地方是你输出的数字;但对于每个案例,仍然必须准确打印 $N$ 个数字,且每个数字必须在 $2$ 到 $M$ 之间。

这个问题涉及随机性,因此即使是最好的解法也可能无法对某个输入做出 $X$ 个正确的猜测(还记得所有乘积都等于 $1$ 的情况吗?)。因此,这个问题没有 Large 输入,而是有两个 Small 输入。这意味着如果你认为自己运气不好,可以重试。你只有在解决了第一个 Small 输入后,才能尝试解决第二个 Small 输入。否则,两个 Small 输入的工作方式与任何其他问题的 Small 输入相同:你可以多次尝试,如果你之后解决了该输入,会有 $4$ 分钟的错误提交惩罚,即使你出错的唯一原因是运气。

祝你好运!

输入格式

输入的第一行给出测试用例的数量 $T$,始终等于 $1$。第二行包含四个空格分隔的整数 $R$、$N$、$M$ 和 $K$。接下来的 $R$ 行描述了 $K$ 个乘积的集合。每一行包含 $K$ 个空格分隔的整数——Maryam 传给 Peiling 的乘积。保证输入中的所有集合都是根据题目描述的过程独立随机生成的。

输出格式

在第一行,输出 "Case #1:"。在接下来的 $R$ 行中,每行输出 $N$ 个数字——你对相应乘积集合中 Maryam 隐藏数字的猜测。你可以以任何顺序打印每个集合的数字,但必须恰好有 $N$ 个数字,每个数字都在 $2$ 到 $M$ 之间(包含 $2$ 和 $M$,注意 $M < 10$,所以没有数字会超过一位)。数字之间不要加空格。

数据范围

时间限制:20 秒。 内存限制:1GB。

第一个 Small 数据集(测试集 1 - 可见;10 分)

$T = 1$。 $R = 100$。 $N = 3$。 $M = 5$。 $K = 7$。 你需要至少答对 $X=50$ 个集合。

第二个 Small 数据集(测试集 2 - 可见;31 分)

$T = 1$。 $R = 8000$。 $N = 12$。 $M = 8$。 $K = 12$。 你需要至少答对 $X=1120$ 个集合。

样例

输入 1

1
2 3 4 4
9 4 36 1
1 1 1 1

输出 1

Case #1:
343
222

说明

样例输入不遵循任何数据集的限制。在样例输入中,你需要至少答对 $X=1$ 个集合。

在样例输入中,Maryam 第一次挑选了数字 $3, 3, 4$,第二次挑选了数字 $2, 4, 4$。在样例输出中,Peiling 第一次猜对了,但第二次没有猜对。

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.