QOJ.ac

QOJ

実行時間制限: 3 s - 6 s メモリ制限: 1024 MB 満点: 20

#5868. 旋转之刃

統計

厌倦了秘密基地设计中的陷阱,你决定尝试一些经典但永远令人愉悦的东西——“旋转刀片”。你订购了一块非常重的金属板,并将在上面切割出刀片;一张均匀的 $C \times R$ 网格将被绘制在金属板上。你已经确定了刀片的最佳形状——你将首先切割出一个 $K \times K$ 的大正方形网格,其中 $K \ge 3$。然后,你将切掉正方形的四个 $1 \times 1$ 角落单元格,从而得到一个“刀片”。确定这一切后,你开始等待金属板送达。

当金属板送达时,你震惊地发现它存在瑕疵!你预期每个单元格的质量为 $D$,但由于厚度差异,实际质量会有所不同。这很糟糕,因为你想在刀片的中心插入一根轴并使其高速旋转,因此刀片的质心也必须正好位于其中心。平面物体的质心定义见下文。

给定网格和每个单元格的质量,你能切割出的质心正好位于其中心的刀片的最大尺寸是多少?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含 3 个整数:$R$、$C$ 和 $D$,分别表示网格的尺寸和你预期每个单元格应有的质量。接下来的 $R$ 行,每行包含 $C$ 个数字 $w_{ij}$,给出了网格单元格实际质量与预期质量的差值。每个单元格的密度是均匀的,但其质量为 $D + 0$ 到 $D + 9$ 之间的整数。

输出格式

对于每个测试用例,输出一行 "Case #x: $K$",其中 $x$ 是用例编号(从 1 开始),$K$ 是你能切割出的最大刀片尺寸。如果找不到尺寸至少为 3 的合格刀片,则输出 "IMPOSSIBLE"。

数据范围

$1 \le T \le 20$。 $0 \le w_{ij} \le 9$。 输入文件大小不超过 625KB。 内存限制:1GB。

小数据集(测试集 1 - 可见;8 分)

$3 \le R \le 10$。 $3 \le C \le 10$。 $1 \le D \le 100$。 时间限制:3 秒。

大数据集(测试集 2 - 隐藏;12 分)

$3 \le R \le 500$。 $3 \le C \le 500$。 $1 \le D \le 10^6$。 时间限制:6 秒。

样例

输入 1

2
6 7 2
1111111
1122271
1211521
1329131
1242121
1122211
3 3 7
123
234
345

输出 1

Case #1: 5
Case #2: IMPOSSIBLE

说明

二维物体的“质心”被正式定义为一个点 $c$。如果你计算物体中所有点 $p$ 的 $(p - c) \times \text{mass}(p)$ 之和,结果必须为 $0$。这里,$p$、$c$ 和 $0$ 都是二维向量。如果你将每个网格单元格视为一个“点”,并将所有质量集中在其中心,这个定义同样适用。

在现实生活中,你可以将手指放在平面物体的质心下方,从而使物体在手指上保持平衡,它不会掉落。

举个例子,在第二个样例测试用例中,唯一可能切割出的刀片是切掉四个角后的 $3 \times 3$ 刀片,其质心位于点 $(1.54, 1.46)$,假设金属板的左下角坐标为 $(0, 0)$,坐标分别向右和向上增长。这可以通过检查以下等式来验证:$(-1.04, 0.04) \times 9 + (-0.04, 1.04) \times 9 + (-0.04, 0.04) \times 10 + (-0.04, -0.96) \times 11 + (0.96, 0.04) \times 11 = (0, 0)$。

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.