[R43F]听取蛙声一片2
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
时空限制
3S/1024M
题目描述
jiangly 正在某 OJ 上做题,OJ 上共有 道题目。
jiangly 打算提交每一道题各一次,每道题的评测结果可能是 AC,也可能是 WA。因此,jiangly 的初始评测状态共有 种可能的情况。
OJ 管理员 Bob 不希望 jiangly 顺利 AC。对于某一种特定的初始评测状态,Bob 可以选择至多 道题(可以选择已经是 WA 的题目,也可以不选任何一个题目),强制将它们的评测状态变为 WA。
我们称 jiangly 的最终评测状态为“听取蛙声一片”,当且仅当最终的状态中存在连续 个(或更多)题目的评测状态为 WA。
现在你需要求出:在所有 种初始评测状态下,Bob 能够使最终状态变为“听取蛙声一片”的方案数的总和。
换句话说,我们需要计算满足以下条件的二元组 的数量:
- 是一个长度为 的初始状态序列(由 AC/WA 组成)。
- 是一个题目下标的集合,满足 。
- 将 中下标在 中的题目的状态全部强制变为 WA 后,序列中存在连续至少 个 WA。
由于答案可能很大,请输出答案对 取模的结果。
格式
输入格式
一行四个整数 ,分别表示题目数量、连续 WA 的目标长度、Bob 最多能修改的题目数以及模数。
输出格式
一个整数,表示方案数总和模 的结果。
样例
样例输入 #1
3 2 2 998244353
样例输出 #1
37
样例解释 #1
。我们需要连续 个 WA。
共有 种初始情况。对于每种情况,Bob 可以选择的下标集合 ()如下:
- AC, AC, AC:需改出连续 2 个 WA。
- 合法集合 : 。共 种。
- AC, AC, WA:
- 合法集合 : 。共 种。
- AC, WA, AC:
- 合法集合 : 。共 种。
- WA, AC, AC:
- 合法集合 : 。共 种。
- WA, AC, WA:
- 合法集合 : 。共 种。
- 其余 种情况:
- 初始已经满足“听取蛙声一片”。
Bob可以选择任意大小 的集合 ,该集合共有 种。- 种状态共 种。
故总和为:。
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 | 分数 | |
|---|---|---|
对于 的数据,满足 ,。
注意: 不一定是质数。
代码源挑战赛 Round 43
- Status
- Done
- Rule
- DMY
- Start at
- 2025-12-26 20:00
- End at
- 2025-12-26 21:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 407