AT_arc093_b [ABC092D] Grid Components

题目描述

给定两个整数 $A$、$B$。 请输出一个满足以下条件的网格(每个格子被涂成白色或黑色),并按照输出格式输出: - 网格的大小为 $h$ 行 $w$ 列,$h$ 和 $w$ 都不超过 $100$。 - 所有白色格子恰好分成 $A$ 个连通块(关于“连通块”的定义见下方注释)。 - 所有黑色格子恰好分成 $B$ 个连通块。 在题目给定的限制条件下,保证至少存在一个解。如果有多个解,输出任意一个均可。

输入格式

输入从标准输入读取,格式如下: > $A$ $B$

输出格式

请按如下格式输出: - 第 $1$ 行输出两个整数 $h$ 和 $w$,表示构造的网格的大小,用空格分隔。 - 接下来输出 $h$ 行。第 $i$ 行($1 \leq i \leq h$)输出一个长度为 $w$ 的字符串 $s_i$,表示网格第 $i$ 行的涂色情况。 - 如果第 $i$ 行第 $j$ 列的格子是白色,则 $s_i$ 的第 $j$ 个字符为 `.`。 - 如果第 $i$ 行第 $j$ 列的格子是黑色,则 $s_i$ 的第 $j$ 个字符为 `#`。

说明/提示

## 注释 两个白色格子 $c_1$、$c_2$ 连通,指的是可以通过只经过白色格子、每次只移动到上下左右相邻的格子,从 $c_1$ 走到 $c_2$。 白色格子的集合 $S$ 是一个连通块,指的是 $S$ 满足以下条件: - $S$ 中任意两个格子都是连通的。 - 不属于 $S$ 的任何白色格子,与 $S$ 中的任意格子都不连通。 黑色格子的连通块定义同理。 ## 约束条件 - $1 \leq A \leq 500$ - $1 \leq B \leq 500$ ## 样例解释 1 以下输出对应的网格如下所示。 ![](https://img.atcoder.jp/arc093/2701558bf42f7c088abad927b419472a.png) 由 ChatGPT 4.1 翻译