#P13187. [GCJ 2016 Qualification] Coin Jam

    ID: 13010 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>数学2016Special JudgeGoogle Code Jam

[GCJ 2016 Qualification] Coin Jam

Description

Jamcoin 是一种长度为 N\mathrm{N}N2\mathrm{N} \geqslant 2)的二进制串,满足以下条件:

  • 每一位都是 0011
  • 首位为 11,末位也为 11
  • 无论将该串按 221010 进制中的哪一种解释,所得的数都不是质数。

并非所有由 0011 组成的串都是 jamcoin。例如,101101 不是 jamcoin,因为它在 22 进制下的数值是 55,而 55 是质数。但 10011001 是 jamcoin:在 221010 进制下分别对应 9,28,65,126,217,344,513,730,10019, 28, 65, 126, 217, 344, 513, 730, 1001,其中每一个都不是质数。

据说有些社区会用 jamcoin 作为货币。当你把 jamcoin 发送给别人时,礼貌的做法是为每个进制(221010)下 jamcoin 的数值都提供一个非平凡因子,以证明该 jamcoin 的合法性。(对于正整数 KK,非平凡因子是指除了 11KK 之外的正整数因子。)为方便起见,这些因子需用 1010 进制表示。

例如,前述 jamcoin 10011001,对于 221010 进制的解释,可以选择的非平凡因子分别为:3,7,5,6,31,8,27,5,773, 7, 5, 6, 31, 8, 27, 5, 77

你能否生成 N\mathrm{N} 位、互不相同的 J\mathrm{J} 个 jamcoin,并且为每个 jamcoin 提供一组合法性证明?

Input Format

输入的第一行是测试用例数量 T\mathrm{T}。接下来有 T\mathrm{T} 组测试用例,每组一行,包含两个整数 N\mathrm{N}J\mathrm{J}

Output Format

对于每组测试用例,输出 J+1\mathrm{J}+1 行。第一行只包含 Case #x:,其中 xx 是测试用例编号(从 11 开始)。接下来的 J\mathrm{J} 行,每行包含一个长度为 N\mathrm{N} 的 jamcoin,后跟九个整数,第 ii 个整数(ii11 开始)为该 jamcoin 在 i+1i+1 进制下的一个非平凡因子。

所有 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

在样例中,为了便于说明,N\mathrm{N}J\mathrm{J} 取了很小的值。注意,这组样例不会出现在 Small 或 Large 数据集中。

这只是众多合法解中的一种。你也可以用其他 jamcoin 及其因子组。补充说明:

  • 110111110111 不能作为输出,因为它在 33 进制下为 337337,而 337337 是质数。
  • 010101010101 虽然 1010110101 是 jamcoin,但不能作为输出,因为 jamcoin 必须以 11 开头。
  • 101010101010 也不能作为输出,因为 jamcoin 必须以 11 结尾。
  • 110011110011 也是 jamcoin,可以出现在输出中,但由于输出必须恰好有 J\mathrm{J} 个 jamcoin,不能再多输出。
  • 对于样例输出的第一个 jamcoin,后面的第一个数不能是 113535,因为这两者是 353510001110001122 进制下)的平凡因子。

限制条件

  • T=1T = 1。(只有一组测试数据。)
  • 保证存在至少 JJ 个不同的长度为 NN 的 jamcoin。

小数据集(10 分,测试集 1 - 可见)

  • N=16N = 16
  • J=50J = 50

大数据集(20 分,测试集 2 - 隐藏)

  • N=32N = 32
  • J=500J = 500

注意,这道题不同于一般的 Code Jam 题目,你已经提前知道每个输入文件的内容。例如,小数据集的输入文件永远如下:

1
16 50

因此,你可以在真正下载输入文件和开始计时之前,提前做一些计算。

翻译由 GPT4.1 完成。