QOJ.ac

QOJ

حد الوقت: 5 s حد الذاكرة: 512 MB مجموع النقاط: 100 تواصل

#8969. 报纸

الإحصائيات

如果您关注社交媒体上的新闻,一定听说过各种关于秘密组织的阴谋论,比如通过疫苗给人类植入芯片、在饮用水中投放氟化物等。年轻的马丁(Martin)最近被这样一家组织聘为一家著名克罗地亚报社的社长。

该组织对报社感兴趣并非没有原因。他们需要一种既缓慢又低效的方式将信息发送给所有成员,同时制造尽可能多的阴谋论。由于某些数字神秘学特性,该组织指示马丁使用一种不同寻常的媒介来发送信息。他不能将信息隐藏在文章的正文中,而必须将其隐藏在报纸的谜题板块中。更准确地说,是隐藏在数独谜题中。

数独谜题是一个 $9 \times 9$ 的矩阵,其中一些格子填入了 1 到 9 之间的数字。数独被划分为 9 行、9 列和 9 个 $3 \times 3$ 的方块。当所有格子都填入 1 到 9 的数字,且每一行、每一列以及每一个 $3 \times 3$ 方块内的数字均不重复时,该数独被视为已完成。

马丁的任务是编写一个程序,将 $N$ 个字符串 $s_i$ 编码为 $N$ 个数独谜题,然后再将这些谜题解码回字符串。

报社的谜题设计者不会允许马丁在报纸上放置任何数独谜题,而是会根据所需的难度,从马丁提供的已完成数独中删去一定数量的数字。因此,马丁的程序必须将字符串编码为已完成的数独谜题。

马丁的上级认为,该组织的每一位成员都应该能够解出这样的谜题,因此解码程序的一部分也必须能够解码完整的数独谜题。

马丁的编程能力并不强,所以他请求你编写这样一个程序。

输入格式

第一行包含自然数 $M$ 和 $N$ ($M = 1$ 或 $M = 2$, $1 \le N \le 30$)。如果 $M = 1$,程序需要将 $N$ 个字符串编码为数独谜题;如果 $M = 2$,程序需要将 $N$ 个数独谜题解码回字符串。

如果 $M = 1$,接下来的 $N$ 行中,每一行包含一个自然数 $l_i$ 和一个字符串 $s_i$ ($1 \le |s_i| = l_i \le 15$)。字符串 $s_i$ 仅由小写英文字母组成。

如果 $M = 2$,接下来的 $9N$ 行包含 $N$ 个 $9 \times 9$ 的矩阵,代表需要解码的数独谜题。这些矩阵始终是有效的数独,即它们由数字 1-9 组成,且在任何 $3 \times 3$ 方块、行或列中没有重复的数字。

输出格式

如果 $M = 1$,请输出 $9N$ 行,即 $N$ 个代表输入字符串 $s_i$ 编码值的数独谜题。输出的数独必须仅由数字 1-9 组成,且行、列和 $3 \times 3$ 方块内的数字不得重复。

如果 $M = 2$,请输出 $N$ 行,即数独谜题解码后的字符串。

子任务

你的解决方案将在两个步骤中进行测试。首先,它将使用 $M = 1$ 的官方输入数据进行调用。如果你的程序输出的是 $N$ 个有效的矩阵,那么在第二步中,你的程序将使用第一步输出的矩阵再次运行。如果你的程序在第二步中输出的字符串与官方输入数据中的字符串相同,你将获得该测试点的所有分数。

你的程序的执行时间是两个评估步骤执行时间的总和。

子任务 分值 数据范围
1 10 $1 \le l_i \le 3$
2 10 $1 \le l_i \le 7$
3 4 $1 \le l_i \le 11$ 且输入字符串为随机生成
4 6 $1 \le l_i \le 11$
5 4 $1 \le l_i \le 12$ 且输入字符串为随机生成
6 6 $1 \le l_i \le 12$
7 7 $1 \le l_i \le 13$ 且输入字符串为随机生成
8 8 $1 \le l_i \le 13$
9 9 $1 \le l_i \le 14$ 且输入字符串为随机生成
10 11 $1 \le l_i \le 14$
11 12 $1 \le l_i \le 15$ 且输入字符串为随机生成
12 13 $1 \le l_i \le 15$

样例

输入 1

1 1
6 sudoku

输出 1

139245678
628137459
457689123
214356897
375498216
896712345
541873962
763921584
982564731

输入 2

2 1
139245678
628137459
457689123
214356897
375498216
896712345
541873962
763921584
982564731

输出 2

sudoku

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.