CF2199C Minesweeper

题目描述

你需要为“扫雷”游戏构造一个由 $2$ 行和若干列组成的棋盘。每个格子要么为空,要么放置地雷。我们称两个格子相邻,当且仅当它们具有公共边或公共角。 你构造的棋盘必须满足以下约束条件: - 每个空白格最多只与 $1$ 个地雷相邻; - 恰好有 $k$ 个空白格与至少一个地雷相邻; - 在所有满足上述条件的棋盘中,要求列数尽可能少。 请你构造出这样的棋盘,或者输出无解。

输入格式

第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例个数。 每个测试用例占一行,包含一个整数 $k$($1 \le k \le 100$),表示需要有 $k$ 个与地雷相邻的空白格。

输出格式

对每个测试用例,按如下格式输出答案: - 如果无法构造出符合要求的棋盘,输出 NO; - 否则,第一行输出 YES,第二行输出一个整数 $n$,表示棋盘的最小列数。第三行和第四行分别输出两行,每行由 $n$ 个字符组成,每个字符为 “.”(空白格)或 “*”(地雷)。如果有多种方案,输出任意一种均可。

说明/提示

由 ChatGPT 5 翻译