A7075 | 跳格子
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
有一个由 $N$ 个格子组成的格子列,这些格子从左到右依次编号为 $1,2,\dots,N$。
住在这个格子上的 Welcome24ever 现在在第 $1$ 个格子,他想通过下面描述的方法不断移动,最终到达第 $N$ 个格子。
给定一个不超过 $10$ 的整数 $K$,以及 $K$ 个互不相交的区间 $[L_1,R_1],[L_2,R_2],\dots,[L_K,R_K]$,这些区间的并集记为集合 $S$。
这里区间 $[l,r]$ 表示所有满足 $l \le x \le r$ 的整数 $x$ 的集合。
- 当 Welcome24ever 在第 $i$ 个格子时,他可以从集合 $S$ 中任选一个整数 $d$,然后移动到第 $i+d$ 个格子。
- 如果 $i+d$ 超出了 $1$ 到 $N$ 的范围,则不能进行这样的移动。
请你计算,从第 $1$ 个格子到达第 $N$ 个格子的不同移动方案数。答案对 $998244353$ 取模。
住在这个格子上的 Welcome24ever 现在在第 $1$ 个格子,他想通过下面描述的方法不断移动,最终到达第 $N$ 个格子。
给定一个不超过 $10$ 的整数 $K$,以及 $K$ 个互不相交的区间 $[L_1,R_1],[L_2,R_2],\dots,[L_K,R_K]$,这些区间的并集记为集合 $S$。
这里区间 $[l,r]$ 表示所有满足 $l \le x \le r$ 的整数 $x$ 的集合。
- 当 Welcome24ever 在第 $i$ 个格子时,他可以从集合 $S$ 中任选一个整数 $d$,然后移动到第 $i+d$ 个格子。
- 如果 $i+d$ 超出了 $1$ 到 $N$ 的范围,则不能进行这样的移动。
请你计算,从第 $1$ 个格子到达第 $N$ 个格子的不同移动方案数。答案对 $998244353$ 取模。
输入格式
输入的第一行包含两个整数 $N,K$。
接下来的 $K$ 行中,第 $j$ 行包含两个整数 $L_j,R_j$。
接下来的 $K$ 行中,第 $j$ 行包含两个整数 $L_j,R_j$。
输出格式
输出一个整数,表示从第 $1$ 个格子到达第 $N$ 个格子的方案数,对 $998244353$ 取模。
输入输出样例
输入 #1
5 2 1 1 3 4
输出 #1
4
输入 #2
5 2 3 3 5 5
输出 #2
0
输入 #3
5 1 1 2
输出 #3
5
输入 #4
60 3 5 8 1 3 10 15
输出 #4
221823067
## 数据范围
- $2 \le N \le 2 \times 10^5$;
- $1 \le K \le \min(N,10)$;
- 对所有 $j$,有 $1 \le L_j \le R_j \le N$;
- 对所有 $i \ne j$,区间 $[L_i,R_i]$ 与 $[L_j,R_j]$ 互不相交;
- 输入中的所有数都是整数。
### 样例解释 1
此时集合 $S$ 为区间 $[1,1]$ 和 $[3,4]$ 的并集:
$$ S = \{1,3,4\}. $$
从第 $1$ 个格子出发,到达第 $5$ 个格子的方案共有 $4$ 种:
1. 依次到达格子 $1,2,3,4,5$(每次移动 $1$ 格);
2. 依次到达格子 $1,2,5$(先移动 $1$ 格,再移动 $3$ 格);
3. 依次到达格子 $1,4,5$(先移动 $3$ 格,再移动 $1$ 格);
4. 依次到达格子 $1,5$(直接移动 $4$ 格)。
因此答案为 $4$。
### 样例解释 2
此时集合 $S = \{3,5\}$。
从第 $1$ 个格子出发:
- 第一次移动可以到格子 $4$(加 $3$)或者格子 $6$(加 $5$,非法);
- 从格子 $4$ 再移动 $3$ 或 $5$ 都会超出范围。
所以无法到达第 $5$ 个格子,方案数为 $0$。
### 样例解释 3
此时集合 $S = \{1,2\}$。
可以验证所有到达格子 $5$ 的方案对应于将数字 $1$ 和 $2$ 相加得到和为 $4$ 的不同拆分方式,一共有 $5$ 种:
- $1+1+1+1$;
- $1+1+2$;
- $1+2+1$;
- $2+1+1$;
- $2+2$。
因此答案为 $5$。
- $2 \le N \le 2 \times 10^5$;
- $1 \le K \le \min(N,10)$;
- 对所有 $j$,有 $1 \le L_j \le R_j \le N$;
- 对所有 $i \ne j$,区间 $[L_i,R_i]$ 与 $[L_j,R_j]$ 互不相交;
- 输入中的所有数都是整数。
### 样例解释 1
此时集合 $S$ 为区间 $[1,1]$ 和 $[3,4]$ 的并集:
$$ S = \{1,3,4\}. $$
从第 $1$ 个格子出发,到达第 $5$ 个格子的方案共有 $4$ 种:
1. 依次到达格子 $1,2,3,4,5$(每次移动 $1$ 格);
2. 依次到达格子 $1,2,5$(先移动 $1$ 格,再移动 $3$ 格);
3. 依次到达格子 $1,4,5$(先移动 $3$ 格,再移动 $1$ 格);
4. 依次到达格子 $1,5$(直接移动 $4$ 格)。
因此答案为 $4$。
### 样例解释 2
此时集合 $S = \{3,5\}$。
从第 $1$ 个格子出发:
- 第一次移动可以到格子 $4$(加 $3$)或者格子 $6$(加 $5$,非法);
- 从格子 $4$ 再移动 $3$ 或 $5$ 都会超出范围。
所以无法到达第 $5$ 个格子,方案数为 $0$。
### 样例解释 3
此时集合 $S = \{1,2\}$。
可以验证所有到达格子 $5$ 的方案对应于将数字 $1$ 和 $2$ 相加得到和为 $4$ 的不同拆分方式,一共有 $5$ 种:
- $1+1+1+1$;
- $1+1+2$;
- $1+2+1$;
- $2+1+1$;
- $2+2$。
因此答案为 $5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?