QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 64 MB 満点: 100

#12261. 煤矿

統計

最近 Bytesia 的一个煤矿发生了罢工。愤怒的矿工摧毁了矿场的所有数据。你被雇佣来恢复一些关于矿场不同区域开采何种煤炭的数据。

该公司开采 $k$ 种不同的煤炭。该煤矿是一个矩形网格。网格中的每个单位正方形区域恰好开采一种煤炭。在单位正方形边缘的某些中点上设有升降机,每种开采的煤炭类型对应一个升降机。由于煤矿必须是一件艺术品,因此开采第 $i$ 种煤炭的单位正方形集合必须关于分配给第 $i$ 种煤炭的升降机所在点对称。

给定煤矿的尺寸、煤炭种类数量 $k$ 以及 $k$ 个升降机的位置。你的任务是确定一种将单位正方形分配给煤炭类型的方法,使得上述条件得到满足,或者确定不存在这样的分配方案。

输入格式

输入的第一行包含一个整数 $z$,表示测试用例的数量。接下来是 $z$ 个测试用例,描述如下:

每个测试用例的第一行包含三个整数 $n, m$ 和 $k$ ($1 \le n, m, n \cdot m \le 1500, 1 \le k \le 100$):煤矿的尺寸和开采的煤炭种类数量。煤矿左上角区域的左上角坐标为 $(0, 0)$,右下角区域的右下角坐标为 $(n, m)$。

接下来是 $k$ 个升降机的位置,每一行包含升降机的坐标 $i, j$ ($0 \le i \le n, 0 \le j \le m$)。$i, j$ 中恰好有一个是整数,另一个是半整数(即 $x.5$ 的形式),表示网格单位正方形边缘上的一个点。第 $l$ 个(从 1 开始计数)升降机被分配给第 $l$ 种煤炭。

输出格式

对于每个测试用例,如果存在一种将煤炭类型分配给所有单位正方形的合理方案,首先输出一行单词 “YES”,否则输出 “NO”。

此外,如果存在这样的分配方案,你需要输出 $n$ 行,每行包含 $m$ 个用空格分隔的整数。第 $i$ 行(从 1 开始计数)的第 $j$ 个数字必须是一个整数,描述左上角坐标为 $(i-1, j-1)$、右下角坐标为 $(i, j)$ 的正方形所开采的煤炭类型。煤炭类型用从 1 到 $k$ 的整数表示。如果存在多种可能的答案,输出其中任意一种即可。

样例

样例输入 1

2
1 6 2
0.5 1
0.5 4
1 4 2
0.5 2
0.5 3

样例输出 1

YES
1 1 2 2 2 2
YES
1 1 1 1

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.