QOJ.ac

QOJ

Límite de tiempo: 3.0 s Límite de memoria: 512 MB Puntuación total: 100

#12936. 魔法棋盘

Estadísticas

考虑一个 $n \times m$ 的棋盘。在棋盘的每个格子上放置一个正整数。棋盘每一列的数值必须从上到下严格递增,每一行的数值必须从左到右严格递增。

“魔力棋盘”还有一个额外的约束:仅共享一个顶点的格子必须具有不同的奇偶性(奇数与偶数)。注意,以下棋盘是无效的,因为 $2$ 和 $4$ 仅共享一个顶点且奇偶性相同:

第一个 $4 \times 4$ 的例子是一个有效的魔力棋盘。给定一个部分填充的魔力棋盘,你能否填充棋盘中剩余的位置,使得所有数值之和尽可能小?

输入格式

每个输入包含一个测试用例。注意,你的程序可能会在不同的输入上运行多次。每个输入以一行包含两个空格分隔的整数 $n$ 和 $m$ ($1 \le n, m \le 2\,000$) 开始,分别表示棋盘的行数和列数。接下来的 $n$ 行,每行包含 $m$ 个空格分隔的整数 $c$ ($0 \le c \le 2\,000$),表示棋盘的内容。$0$ 表示需要你填充的空位。你可以使用任何正整数来填充空位,只要最终构成一个有效的魔力棋盘即可。你不受数值 $\le 2\,000$ 的限制,且数值不需要唯一。

输出格式

输出一个整数,表示通过将 $0$ 替换为正整数以构成有效魔力棋盘后,所有数值之和的最小值。如果无法通过替换 $0$ 来满足魔力棋盘的约束,则输出 $-1$。

样例

样例输入 1

4 4
1 2 3 0
0 0 5 6
0 0 7 8
7 0 0 10

样例输出 1

88

样例输入 2

4 4
1 2 3 0
0 0 5 6
0 4 7 8
7 0 0 10

样例输出 2

-1

样例输入 3

2 3
0 0 0
0 0 0

样例输出 3

18

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.