#P13282. [GCJ 2013 Qualification] Lawnmower

[GCJ 2013 Qualification] Lawnmower

Description

Alice 和 Bob 家门前有一片草坪,形状为一个长 NN 米、宽 MM 米的矩形。他们每年都会尝试修剪草坪,以呈现一些有趣的图案。以前他们使用手动剪刀修剪草坪,非常费时费力;但现在他们有了一台新的自动割草机,可以选择不同的割草高度,因此他们想尝试使用它。

这台新的割草机可以设定割草的高度:你可以将其设定为任意一个在 11100100 毫米之间的整数高度 hh,然后它会将所有遇到的高度超过 hh 的草修剪到高度 hh。使用时,你需要从草坪的任意一条边进入;割草机会沿着垂直于该边的直线,以 11 米宽的路径穿过整个草坪,直到从对面的边缘离开草坪为止。割草机的高度只能在它离开草坪时重新设定。

Alice 和 Bob 设计了若干种想要实现的草坪图案。他们想知道,对于每个给定的草坪图案,是否能用新割草机修剪出来。每个图案通过给出草坪上每个 11m ×\times 11m 方格所希望的草高来描述。

草坪最开始的草高均为 100100 毫米。

Input Format

输入的第一行包含一个整数 TT,表示测试用例的数量。接下来是 TT 个测试用例。每个测试用例的第一行包含两个整数 NNMM。接下来 NN 行,每行包含 MM 个整数,第 ii 行第 jj 个整数 ai,ja_{i,j} 表示第 ii 行第 jj 列的草坪方格所希望的草高。

Output Format

对于每个测试用例,输出一行 "Case #x: y",其中 xx 是测试用例的编号(从 11 开始),yy 是单词 "YES""NO"(不含引号)。如果割草机能实现第 xx 个图案,输出 "YES",否则输出 "NO"

3
3 3
2 1 2
1 1 1
2 1 2
5 5
2 2 2 2 2
2 1 1 1 2
2 1 2 1 2
2 1 1 1 2
2 2 2 2 2
1 3
1 2 1
Case #1: YES
Case #2: NO
Case #3: YES

Hint

限制条件

  • 1T1001 \leq T \leq 100

小数据集(10 分,测试集 1 - 可见)

  • 1N,M101 \leq N, M \leq 10
  • 1ai,j21 \leq a_{i,j} \leq 2

大数据集(30 分,测试集 2 - 不可见)

  • 1N,M1001 \leq N, M \leq 100
  • 1ai,j1001 \leq a_{i,j} \leq 100

翻译由 ChatGPT-4.5 完成。