1 条题解
-
0
思路
从左到右构造已经打开的结构。设当前处理了 台电脑,并形成了 个由手动开启顺序连接出的活跃部分。加入下一台电脑时,它可以接到某个部分的左端或右端,共有 种选择;也可以隔开一个将来自动开启的位置,新建一个部分。
做法
令 表示已经安排到前 个位置、当前有 个活跃部分的方案数。初始 。
从状态 有两类转移:
- 把下一台电脑接到已有部分的一端,转移到 ,方案乘以 ;
- 留出一个会自动开启的位置,并开始新的部分,转移到 ,新部分可插入 个相对位置。
所有下标超过 的状态忽略。答案为 。每次加法和乘法都对 取模。
正确性证明
任意合法手动开启序列在从左到右观察时,新增手动开启位置要么与某个已有活跃部分相邻,要么与已有结构之间恰好隔着一个最终自动开启的位置。第一种情况唯一对应选择某个部分的左端或右端;第二种情况唯一对应在部分序列中插入一个新部分。
两类转移互斥且覆盖全部可能,并保留了活跃部分数量。反向删除最右侧构造也能唯一确定来自哪类转移,因此没有重复计数。归纳可知 精确统计对应状态,求和即为全部合法方案。
复杂度
状态数为 ,每个状态常数转移,时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1282
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者