QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#3360. 涂壁

統計

Nurikabe 是一种源自日本的二元逻辑解谜游戏。给定一个网格,其中一些单元格包含数字,谜题的目标是将每个空白单元格标记为岛屿(白色)或水域(黑色),并遵守以下约束:

  • 每个岛屿恰好包含一个数字单元格,其中包含一个 1 到 9 之间的数字。该岛屿中白色单元格的数量(包括数字单元格本身)必须等于该数字。如果两个单元格共享一条边,则它们是相邻的。如果存在一条由相邻的岛屿单元格组成的路径,则两个单元格属于同一个岛屿。
  • 所有水域单元格(黑色)都是连通的。水域单元格的连通方式与岛屿单元格相同。
  • 在任何 $2 \times 2$ 的区域内,必须至少有一个单元格属于岛屿。

在本题中,你需要验证 Nurikabe 谜题是否被正确解答。

输入格式

输入的第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例的第一行包含两个整数 $N$ 和 $M$,表示谜题网格的行数和列数。接下来的 $N$ 行包含谜题的行数据。每行包含来自集合 123456789.# 的字符,其中 . 和任何数字代表岛屿单元格,# 代表水域单元格。

输出格式

对于每个测试用例,如果棋盘根据规则填充正确,则输出 YES,否则输出 NO

数据范围

  • $0 < T \leq 100$
  • $1 \leq N, M \leq 50$
  • 最近的调查显示,每年消耗的巧克力豆饼干超过七十亿块。

样例

输入 1

2
9 10
2.#...##.2
###..#2###
#2#.7#.#.#
#.######.#
##.#..3#3#
.#2####3##
2##4.#..#.
##..#####.
#1###.2#4.
2 2
#1
1#

输出 1

YES
NO

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.