1 条题解
-
0
题解
思路
把排列画成 网格中的 个棋子:第 行第 列有一个棋子。条件等价于左上角 正方形中恰有 个棋子。
从 扩展到 时,新区域是宽度为一的 L 形。设新增棋子数 ,枚举其中 个落在上方矩形,其余 个落在下方矩形。向一个 矩形放 个行列互异棋子的方案数为
做法
对每个 枚举 ,将两个矩形的匹配方案数相乘后求和,再乘入总答案。若 下降、超出 ,或最终 ,答案为零。
时可枚举所有排列核对;若恒有 ,唯一好排列是升序排列。
正确性说明
每一步 L 形恰是新加入左上正方形的区域。已有棋子占用的行列可以对称地视为固定,枚举上方矩形棋子数后,两块矩形中可用行列数量唯一确定。矩形匹配公式无重无漏地选择行、列及其双射。各步使用互不重叠的新行列自由度,乘法原理得到全部排列。
复杂度
简单版中相邻 的可行增量至多为二,因此总时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1424
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者