专栏文章
P12911 [POI 2020/2021 R2] 棋盘 / Projekt planszy
P12911题解参与者 8已保存评论 8
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mip15w29
- 此快照首次捕获于
- 2025/12/03 04:28 3 个月前
- 此快照最后确认于
- 2025/12/03 04:28 3 个月前
有趣的构造题。
看了两位金钩大神写的进制拆分,颇受启发。
在此提供一种有点暴力但是简单易懂、具有普遍性的构造方案。
题目要求 ,我们直接将网格开到 。
定义 表示格子 的状态,当 时 被封锁,否则未被封锁。
初始时除起点与终点外的所有格子均被封锁。
考虑将 条路径拆分。设 ()的第 个数位(定义个位为第 位)的数值为 ,则:
例如,。
定义『块』为 的网格。
一个从左上角走至右下角有 条合法路径的『块』被称为『 类块』。
下面给出『 类块』至『 类块』的一种构造方案。
CPP#... .... .... ...# .... ...# .... .... ...# .... ....
.... ###. .##. #..# .#.. #... #... .... .... .... ....
.... ###. .... #... .... #... #... ##.. #... #... ....
容易证明,将一个『 类块』的右下角与一个『 类块』的左上角连接后,从『 类块』的左上角走至『 类块』的右下角的合法方案数为 。
开始构造。我们在图的顶部放置 个『块』(红色),其中第 个『块』为『 类块』。(,设最右边的为第 个『块』,即 的个位所对应的『块』)
在底下放置 个『 类块』(蓝色)。

将这些『块』按上图方式连接。
从起点开始走,经过上面的第 个『块』之后,还会经过 个『 类块』,因此走到右下角的合法路径数为 。
整个结构的合法路径数为每种走法的合法路径数之和,也就是 。
结构的长度(横向)为 ,宽度(纵向)为 ,符合题目要求。
最后将结构的右下角连接至终点即可。
相关推荐
评论
共 8 条评论,欢迎与作者交流。
正在加载评论...