P16473 [GKS 2013 #B] Sudoku Checker

题目描述

**数独**是一款流行的单人游戏。目标是在一个 $9 \times 9$ 的矩阵中填入数字,使得每一列、每一行以及所有 $9$ 个互不重叠的 $3 \times 3$ 子矩阵都包含数字 $1$ 到 $9$。游戏开始时,每个 $9 \times 9$ 矩阵都已被部分填充,且通常有唯一解。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/nj0jocjg.png) ![](https://cdn.luogu.com.cn/upload/image_hosting/7zden3kb.png) ::: 给定一个已填满的 $\mathbf{N^2} \times \mathbf{N^2}$ 数独矩阵,你的任务是判断它是否为一个*有效*的解。一个有效的解必须满足以下条件: - 每一行包含 $1$ 到 $\mathbf{N^2}$ 的每个数字恰好一次。 - 每一列包含 $1$ 到 $\mathbf{N^2}$ 的每个数字恰好一次。 - 将 $\mathbf{N^2} \times \mathbf{N^2}$ 矩阵划分为 $\mathbf{N^2}$ 个互不重叠的 $\mathbf{N} \times \mathbf{N}$ 子矩阵。每个子矩阵包含 $1$ 到 $\mathbf{N^2}$ 的每个数字恰好一次。 你不必担心问题的唯一性,只需检查给定的矩阵是否是一个有效解即可。

输入格式

第一行输入给出测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例以一个整数 $N$ 开始。接下来的 $N^2$ 行描述一个已填满的数独解,每行恰好包含 $N^2$ 个整数。所有输入整数均为正且小于 $1000$。

输出格式

对于每个测试用例,输出一行形如 `Case #x: y` 的内容,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 `Yes`(仅为清晰起见加了引号)如果它是一个有效解,或 `No`(仅为清晰起见加了引号)如果它是无效的。请注意裁判程序区分大小写,因此 `yes` 和 `no` 的答案将不会被接受。

说明/提示

### 限制 $1 \le T \le 100$。 **测试集 1 - 可见** $N = 3$。 **测试集 2 - 隐藏** $3 \le N \le 6$。 翻译由 DeepSeek V4 Pro 完成