1 条题解
-
0
题解
思路
令 表示长度恰好为 的合法序列数。观察最后一个块:它要么是一朵红花,要么是一组 朵白花。因此
空序列是拼接的起点,所以 。所有运算均对 取模。
做法
先读入所有询问并记最大右端点 ,按照递推式计算 。再建立前缀和
询问 的答案为 。
正确性证明
对于任意长度为 的合法序列,最后一个块只有两种互斥情况:
- 最后是单朵红花。删去它后,得到任意一个长度为 的合法序列,共 种;
- 最后是连续 朵白花。仅当 时可行,删去该块后得到任意一个长度为 的合法序列,共 种。
两类覆盖全部合法序列,因此递推式正确。前缀和 恰好累加所有长度 到 的方案数,所以每个询问的输出正确。
复杂度分析
设所有询问的最大右端点为 。预处理时间复杂度 ,回答询问共需 ,空间复杂度 。
- 1
信息
- ID
- 1137
- 时间
- 1500ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者