P13722 [GCPC 2024] Geometric Gridlock

题目描述

*Pentominous* 是一个基于十二种五连块(pentomino)的网格逻辑谜题。五连块是由五个大小相等的正方形通过边相连组成的多边形。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/dwgeqnjb.png) 图 G.1:十二种五连块(考虑镜像和旋转后唯一)及其名称。 ::: 本谜题的目标是将一个网格划分为若干个大小为 $5$ 的区域(即五连块),使得任意两个有公共边的区域形状不同。 你可以旋转和翻转五连块,但这些旋转和翻转都算作同一种形状。 十二种可能的形状如图 G.1 所示。 在普通的 *Pentominous* 谜题中,玩家会被给出一些预填充的格子,这些格子的区域形状已经确定。 而在本题中,你需要处理一个完全空白、尺寸为 $h\times w$ 的网格,你的任务是构造任意一种合法的五连块划分方案。

输入格式

输入包含一行,包含两个整数 $h$ 和 $w$($1 \le h,w \le 100$),表示网格的高度和宽度。

输出格式

如果不存在合法的 $h\times w$ *Pentominous* 网格,输出“$\texttt{no}$”。 否则,输出“$\texttt{yes}$”,接下来输出 $h$ 行,每行 $w$ 个字符,表示一种可能的五连块划分方案,使用图 G.1 中的字母表示。 如果有多种方案,任意一种都可以。

说明/提示

:::align{center} | ![](https://cdn.luogu.com.cn/upload/image_hosting/xzo3g55c.png) | ![](https://cdn.luogu.com.cn/upload/image_hosting/arn3qmip.png) | ![](https://cdn.luogu.com.cn/upload/image_hosting/e6kfe7wa.png) | |:-:|:-:|:-:| | 样例输出 1 的示意图。 | 样例输出 2 的示意图。 | 样例输出 4 的示意图。 | | [![](https://cdn.luogu.com.cn/upload/image_hosting/5c9kokf9.png)](https://puzz.link/p?pentominous/10/10/s9967k09h77j4o4o1h157jbjbj00h87k30a8s) | [![](https://cdn.luogu.com.cn/upload/image_hosting/dz1q9nmw.png)](https://puzz.link/p?pentominous/10/10/s5558k95h78j4o5o3o4o42h61k88a6s) | |:-:|:-:| | [![](https://cdn.luogu.com.cn/upload/image_hosting/ung8r57e.png)](https://puzz.link/p?pentominous/10/10/r44a44k4j4j7j4j44454k4o3o4o4i47r) | [![](https://cdn.luogu.com.cn/upload/image_hosting/8ltajbb5.png)](https://puzz.link/p?pentominous/10/10/s3327k22h71j1o7l1h1l1h2o21h11k7337s) | 比赛结束后你可以尝试的 *Pentominous* 谜题示例。 ::: 由 ChatGPT 4.1 翻译