#P14687. [ICPC 2025 Yokohama R] U-Shaped Panels

[ICPC 2025 Yokohama R] U-Shaped Panels

Description

你家后院有一个长方形的池塘。由于池塘的长和宽都是 11 米的整数倍,因此可以将池塘看作由 11 米见方的方格组成。

你总觉得池塘太大了,想用存放在谷仓里的面板覆盖池塘的一部分方格。这些面板尺寸和形状都相同,由排列成 U 形的 11 米见方的木板组成。面板的整体尺寸为 kk 米 × kk 米,该正方形的三条边上共有 3k23k - 2 块木板。其余部分,即 (k2)×(k1)(k - 2) \times (k - 1) 的长方形区域,是空的。图 H.1 展示了一个尺寸为 k=5k = 5 的面板。

:::align{center}

图 H.1. 尺寸为 k=5k = 5 的面板(左)及其俯视图(右) :::

你计划用这些面板覆盖池塘的某些 11 米见方的方格,其余部分则不覆盖。面板的放置必须使每块木板恰好覆盖一个方格。只要满足这一点,面板的方向可以任意选择。面板之间不能相互重叠,也不能超出池塘范围。

判断你的计划是否可行。

Input Format

输入包含一个或多个测试用例。输入的第一行包含一个整数 tt (1t101 \le t \le 10),表示测试用例的数量。接下来是 tt 个测试用例的描述,每个用例的格式如下。

n m kn\ m\ k s1s_1 \vdots sns_n

第一行包含三个整数 nnmmkk。整数 nnmm 分别表示池塘的长度和宽度 (5n10005 \le n \le 1000, 5m10005 \le m \le 1000)。整数 kk 表示 U 形面板的尺寸 (5k10005 \le k \le 1000)。接下来的 nn 行表示你的计划。其中第 ii 行包含一个长度为 mm 的字符串 sis_i,由字符 '#' 和 '.' 组成。假设一个 11 米见方的方格位于 (r,c)(r, c),如果它距离前边 r1r-1 米到 rr 米,距离左边 c1c-1 米到 cc 米。对于每个 iijj,如果 sis_i 的第 jj 个字符是 '#',则位于 (i,j)(i, j) 的方格应被一块面板木板完全覆盖。否则,该方格应保持完全不被覆盖。

所有测试用例的 nn 之和不超过 10001000mm 也满足相同条件。

Output Format

对于每个测试用例,如果你的计划可行,则输出一行 yes;否则输出 no。

1
10 10 5
..........
..........
....#####.
..#.#.#.#.
..#.#.#.#.
..#.#.#.#.
..#.#.#.#.
..#####...
..........
..........
yes
2
5 21 5
.#...##...###....##..
.#..#..#..#..#..#..#.
.#..#.....###...#....
.#..#..#..#.....#..#.
.#...##...#......##..
6 14 6
.############.
.#..........#.
.#..........#.
.#..........#.
.#..........#.
.############.
no
yes

Hint

翻译由 DeepSeek V3 完成