QOJ.ac

QOJ

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

#12463. 无平方因子数

الإحصائيات

我们有一个包含 $R$ 行 $C$ 列的方格矩阵。我们需要在每个单元格中画一条对角线。每个单元格必须且只能画两条可能对角线中的一条:正斜杠对角线(连接单元格的左下角和右上角)或反斜杠对角线(连接单元格的左上角和右下角)。

对于每一行和每一列,我们希望画出特定数量的每种类型的对角线。此外,在画完所有对角线后,矩阵应该是“无平方”的(square free)。也就是说,通过我们添加的对角线不能形成任何正方形。

例如,假设我们有一个 $4$ 行 $4$ 列的矩阵。每行旁边的数字是该行中必须包含的正斜杠对角线的确切数量。每列下方的数字是该列中必须包含的正斜杠对角线的确切数量。

有多种填充矩阵的方法可以满足这些行和列的限制。以下是三种可能性:

前两个矩阵不是无平方的,而第三个矩阵是。在第一个矩阵中,有一个边长为 $2$ 个对角线的正方形,其顶点位于矩阵每条边的中间。在第二个矩阵中,右下角有一个边长为 $1$ 个对角线的正方形。在第三个矩阵中,没有正方形。因此,第三个矩阵是符合所有规则的有效绘图。

给定矩阵的大小以及每一行和每一列中必须画出的正斜杠对角线的确切数量,请生成任何满足行和列限制的无平方矩阵,或者说明不存在这样的矩阵。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含三行。第一行包含 $R$ 和 $C$,即矩阵的行数和列数。第二行包含 $R$ 个整数 $S_1, S_2, \dots, S_R$。$S_i$ 是从上往下第 $i$ 行中必须画出的正斜杠对角线的确切数量。第三行包含 $C$ 个整数 $D_1, D_2, \dots, D_C$。$D_i$ 是从左往右第 $i$ 列中必须画出的正斜杠对角线的确切数量。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),如果不存在满足所有规则的填充矩阵,则 $y$ 为 IMPOSSIBLE,否则为 POSSIBLE。如果输出 POSSIBLE,则再输出 $R$ 行,每行包含 $C$ 个字符。这些行中第 $i$ 行的第 $j$ 个字符必须是 /(如果你的方案中从上往下第 $i$ 行、从左往右第 $j$ 列的单元格画的是正斜杠对角线),否则为 \。你的方案必须符合所有规则。

数据范围

$1 \le T \le 100$。 $0 \le S_i \le C$,对于所有 $i$。 $0 \le D_i \le R$,对于所有 $i$。

子任务

测试集 1(可见判定) $2 \le R \le 6$ $2 \le C \le 6$

测试集 2(隐藏判定) $2 \le R \le 20$ $2 \le C \le 20$

样例

输入 1

4
4 4
3 2 3 3
3 3 2 3
2 3
1 1
1 1 1
2 3
1 2
1 1 1
3 3
2 0 2
2 0 2

输出 1

Case #1: POSSIBLE
//\/
\/\/
///\
/\//
Case #2: IMPOSSIBLE
Case #3: POSSIBLE
\\/
//\
Case #4: POSSIBLE
/\/
\\\
/\/

说明

样例 #1 即为上述解释中的例子。

在样例 #2 中,根据行总和,总共必须有 $2$ 条正斜杠对角线,但根据列总和,总共必须有 $3$ 条。因此,不可能遵循所有规则。

在样例 #3 中,唯一遵循行和列总数的矩阵如下:

由于前两个包含正方形,第三个是该用例唯一有效的输出。

在样例 #4 中,只有一种填充矩阵的方法遵循行和列总数,如下图所示。注意它产生了一个单一的矩形(图中蓝色所示)。但是,由于该矩形不是正方形,因此该矩阵是无平方的。

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.