#P13187. [GCJ 2016 Qualification] Coin Jam
[GCJ 2016 Qualification] Coin Jam
Description
Jamcoin 是一种长度为 ()的二进制串,满足以下条件:
- 每一位都是 或 。
- 首位为 ,末位也为 。
- 无论将该串按 到 进制中的哪一种解释,所得的数都不是质数。
并非所有由 和 组成的串都是 jamcoin。例如, 不是 jamcoin,因为它在 进制下的数值是 ,而 是质数。但 是 jamcoin:在 到 进制下分别对应 ,其中每一个都不是质数。
据说有些社区会用 jamcoin 作为货币。当你把 jamcoin 发送给别人时,礼貌的做法是为每个进制( 到 )下 jamcoin 的数值都提供一个非平凡因子,以证明该 jamcoin 的合法性。(对于正整数 ,非平凡因子是指除了 和 之外的正整数因子。)为方便起见,这些因子需用 进制表示。
例如,前述 jamcoin ,对于 到 进制的解释,可以选择的非平凡因子分别为:。
你能否生成 位、互不相同的 个 jamcoin,并且为每个 jamcoin 提供一组合法性证明?
Input Format
输入的第一行是测试用例数量 。接下来有 组测试用例,每组一行,包含两个整数 和 。
Output Format
对于每组测试用例,输出 行。第一行只包含 Case #x:,其中 是测试用例编号(从 开始)。接下来的 行,每行包含一个长度为 的 jamcoin,后跟九个整数,第 个整数( 从 开始)为该 jamcoin 在 进制下的一个非平凡因子。
所有 jamcoin 必须互不相同。即使因子组不同,也不能输出相同的 jamcoin。
1
6 3
Case #1:
100011 5 13 147 31 43 1121 73 77 629
111111 21 26 105 1302 217 1032 513 13286 10101
111001 3 88 5 1938 7 208 3 20 11
Hint
在样例中,为了便于说明, 和 取了很小的值。注意,这组样例不会出现在 Small 或 Large 数据集中。
这只是众多合法解中的一种。你也可以用其他 jamcoin 及其因子组。补充说明:
- 不能作为输出,因为它在 进制下为 ,而 是质数。
- 虽然 是 jamcoin,但不能作为输出,因为 jamcoin 必须以 开头。
- 也不能作为输出,因为 jamcoin 必须以 结尾。
- 也是 jamcoin,可以出现在输出中,但由于输出必须恰好有 个 jamcoin,不能再多输出。
- 对于样例输出的第一个 jamcoin,后面的第一个数不能是 或 ,因为这两者是 ( 在 进制下)的平凡因子。
限制条件
- 。(只有一组测试数据。)
- 保证存在至少 个不同的长度为 的 jamcoin。
小数据集(10 分,测试集 1 - 可见)
- 。
- 。
大数据集(20 分,测试集 2 - 隐藏)
- 。
- 。
注意,这道题不同于一般的 Code Jam 题目,你已经提前知道每个输入文件的内容。例如,小数据集的输入文件永远如下:
1
16 50
因此,你可以在真正下载输入文件和开始计时之前,提前做一些计算。
翻译由 GPT4.1 完成。
京公网安备 11011102002149号