题库练习 跳格子
← 上一题 下一题 →

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$ 取模。

输入格式

输入的第一行包含两个整数 $N,K$。

接下来的 $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
C++ 编辑器
输入
输出