专栏文章

题解:P12911 [POI 2020/2021 R2] 棋盘 / Projekt planszy

P12911题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip10fe6
此快照首次捕获于
2025/12/03 04:24
3 个月前
此快照最后确认于
2025/12/03 04:24
3 个月前
查看原文

分析

构造棋盘使走法数满足题意,一开始想的是类似递归的方法,每次将棋盘分成几个部分,最后将各部分方案数整合起来,但有些麻烦,最后还是另起炉灶,利用了三条特性:
  1. 不相交的路的方案数是互相独立的,计算的时候总方案数为各路方案数之和;
  2. 如果将一条路拆分成若干个部分且相邻两部分仅由一条路相连,则方案数为各部分方案数之积;
  3. 用某种方法拆分走法数 KK
举个例子:
设现在 KK 等于 12341234,则借助特性 22,猜想是否可以将棋盘分出 44 条路,使得各条路的走法数依次为 10001000200200303044。又借助特性 33,思考将 10001000 拆成 33 个走法数均为 1010 的小图。200200 则可以拆成 11 个走法数为 22 的小图和 22 个走法数为 1010 的小图。为了整体的统一性(更好写),在数位上的数字为 11 时,应多一个走法数为 11 的图。
这里小图用 4×44 \times 4 的规格。
空白处均为障碍,灰色均为通道,4×44 \times 4 的红色块代表一个走法数为该数字的部分,列举几种情况:
走法数为 11 的小图:
CPP
....
###.
###.
###.
走法数为 55 的小图:
CPP
....
....
.##.
....
记得最后要补 44#,因为棋盘是正方形的。
粗略计算边长最大为 9090 左右,满足要求。

评论

0 条评论,欢迎与作者交流。

正在加载评论...