QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 128 MB 總分: 100

#1939. 宾果

统计

宾果游戏由一名主持人及多名玩家进行。游戏开始时,每位玩家会获得一张印有 $M \times M$ 个数字的矩阵卡片(见图 10)。

图 10:卡片

图 11:$4 \times 4$ 卡片的宾果图案

游戏进行时,主持人会逐个宣布一系列数字。如果玩家卡片上有被宣布的数字,该玩家就在相应位置打孔。

当卡片上至少出现一个“宾果”时,该玩家获胜并离开游戏。“宾果”是指卡片上某一行、某一列或某一条对角线上的所有 $M$ 个数字都被打孔(见图 11)。

主持人会持续宣布数字,直到所有玩家都达成宾果。

在普通的宾果游戏中,主持人通过随机过程选择数字,无法对其进行控制。但在本题中,主持人在游戏开始时已知所有卡片的内容,并可以通过自主选择要宣布的数字序列来控制游戏。

具体而言,他控制游戏以满足以下条件:

对于 $i < j$,$\text{Card}_i$ 达成宾果的时间不晚于 $\text{Card}_j$(即 $\text{Card}_i$ 必须先于或同时于 $\text{Card}_j$ 达成宾果)。($*$)

图 12 展示了游戏过程的一个示例。主持人不能在“16”之前宣布“5”,因为这样会导致 $\text{Card}_4$ 比 $\text{Card}_2$ 和 $\text{Card}_3$ 更早达成宾果,从而违反条件 ($*$)。

你的任务是编写一个程序,求出满足给定卡片条件下,数字序列的最小长度。

输入格式

输入包含多个数据集。每个数据集的格式如下:

$P \quad M$ $N_{11}^1 \quad N_{12}^1 \quad \dots \quad N_{1M}^1 \quad N_{21}^1 \quad N_{22}^1 \quad \dots \quad N_{2M}^1 \quad \dots \quad N_{M1}^1 \quad N_{M2}^1 \quad \dots \quad N_{MM}^1$ $N_{11}^2 \quad N_{12}^2 \quad \dots \quad N_{1M}^2 \quad N_{21}^2 \quad N_{22}^2 \quad \dots \quad N_{2M}^2 \quad \dots \quad N_{M1}^2 \quad N_{M2}^2 \quad \dots \quad N_{MM}^2$ $\vdots$ $N_{11}^P \quad N_{12}^P \quad \dots \quad N_{1M}^P \quad N_{21}^P \quad N_{22}^P \quad \dots \quad N_{2M}^P \quad \dots \quad N_{M1}^P \quad N_{M2}^P \quad \dots \quad N_{MM}^P$

所有数据项均为整数。$P$ 是卡片的数量,即玩家人数。$M$ 是每张卡片上矩阵的行数和列数。$N_{ij}^k$ 表示第 $k$ 张卡片上位置 $(i, j)$ 的数字。若 $(i, j) \neq (p, q)$,则 $N_{ij}^k \neq N_{pq}^k$。参数 $P, M$ 和 $N$ 满足条件 $2 \le P \le 4$,$3 \le M \le 4$,且 $0 \le N_{ij}^k \le 99$。

输入以一行包含两个空格分隔的零作为结束,该行不属于数据集。

输出格式

对于每个数据集,输出满足条件 ($*$) 的数字序列的最小长度。如果不存在这样的序列,则输出 0。每个数据集的输出应打印在单独的一行上。

样例

输入 1

4 3
10 25 11 20 6 2 1 15 23
5 21 3 12 23 17 7 26 2
8 18 4 22 13 27 16 5 11
19 9 24 2 11 5 14 28 16
4 3
12 13 20 24 28 32 15 16 17
12 13 21 25 29 33 16 17 18
12 13 22 26 30 34 17 18 15
12 13 23 27 31 35 18 15 16
4 3
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
4 4
2 6 9 21 15 23 17 31 33 12 25 4 8 24 13 36
22 18 27 26 35 28 3 7 11 20 38 16 5 32 14 29
26 7 16 29 27 3 38 14 18 28 20 32 22 35 11 5
36 13 24 8 4 25 12 33 31 17 23 15 21 9 6 2
0 0

输出 1

5
4
12
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.