luogu#P12058. [THUPC 2025 决赛] 三元链
[THUPC 2025 决赛] 三元链
题目描述
给定正整数 ,请在一个 的网格中将 个方格染成黑色,其余方格染成白色,满足:
-
在水平或竖直方向上不存在连续的三个同色格。具体地:
- 不存在 满足坐标为 的格子均为黑色或均为白色。
- 不存在 满足坐标为 的格子均为黑色或均为白色。
-
每列中有恰好 个黑色格。
-
对于任意 ,任意相邻的两列中从上至下第 个黑色格的行坐标之差不超过 。具体地,记第 列的黑色格的坐标分别为 ,其中 ,那么对于 有 。
给出一种合法的方案,或判定无解。
输入格式
第一行包含一个正整数 ,表示数据组数。
每组数据包含一行两个正整数 ,分别表示网格的大小与每列中黑色格的数量。
保证单个测试点中所有数据 的和不超过 。
输出格式
对于每组测试数据:
- 若不存在合法的染色方案,则仅输出一行一个字符串
No
; - 否则,先输出一行一个字符串
Yes
,然后接下来 行每行输出一个长度为 ,仅包含字符#
与.
的字符串,代表你染色方案中从上到下每一行的染色情况,其中字符#
代表对应格染为黑色,字符.
代表对应格染为白色。如果有多种合法的染色方案,输出任意一种即可。
3
4 2
6 1
9 5
Yes
#..#
.##.
.##.
#..#
No
Yes
.#.#..##.
#.#.##..#
#.##..##.
.#..##.##
#..##.#.#
.##..#.#.
##.##.#.#
#.##.##..
.##.##.##
提示
样例 #1 解释
对于第一组数据,以下为若干不符合条件的示例:
示例 中左下角有连续的三个白色格,示例 中第一列与第四列黑色格数量不正确,示例 中左上角有连续的三个黑色格,示例 中第三、四列的第二个黑色格行坐标之差大于 。
对于第二组数据,容易发现不存在合法的染色方案。
对于第三组数据,下图中不同方位的黑色格用不同颜色标注后易见答案的合法性:
来源与致谢
来自 THUPC2025(2025 年清华大学学生程序设计竞赛暨高校邀请赛)决赛。感谢 THUSAA 的提供的题目。
数据、题面、标程、题解等请参阅 THUPC 官方仓库 https://thusaac.com/public。