#aBC179D. [ABC179D] Leaping Tak

[ABC179D] Leaping Tak

AT_abc179_d [ABC179D] Leaping Tak

题目描述

有一个由 NN 个格子组成的格子列,这些格子从左到右依次编号为 1,2,,N1, 2, \ldots, N

住在这个格子上的高桥君现在在第 11 个格子,他想通过下面描述的方法不断移动,最终到达第 NN 个格子。

给定一个不超过 1010 的整数 KK,以及 KK 个互不相交的区间 [L1,R1],[L2,R2],,[LK,RK][L_1, R_1], [L_2, R_2], \ldots, [L_K, R_K],这些区间的并集记为 SS。其中,区间 [l,r][l, r] 表示所有满足 lxrl \leq x \leq r 的整数 xx 的集合。

  • 当高桥君在第 ii 个格子时,他可以从 SS 中任选一个整数 dd,然后移动到第 i+di+d 个格子。但不能移动到格子列之外。

请你帮高桥君计算,从第 11 个格子到达第 NN 个格子的方案数,答案对 998244353998244353 取模。

输入格式

输入按以下格式从标准输入读入。

NN KK L1L_1 R1R_1 L2L_2 R2R_2 \ldots LKL_K RKR_K

输出格式

输出高桥君从第 11 个格子到第 NN 个格子的方案数,对 998244353998244353 取模。

输入输出样例 #1

输入 #1

5 2
1 1
3 4

输出 #1

4

输入输出样例 #2

输入 #2

5 2
3 3
5 5

输出 #2

0

输入输出样例 #3

输入 #3

5 1
1 2

输出 #3

5

输入输出样例 #4

输入 #4

60 3
5 8
1 3
10 15

输出 #4

221823067

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1Kmin(N,10)1 \leq K \leq \min(N, 10)
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • [Li,Ri][L_i, R_i][Lj,Rj][L_j, R_j] 互不相交(iji \neq j
  • 所有输入均为整数

样例解释 1

集合 SS 是区间 [1,1][1, 1] 和区间 [3,4][3, 4] 的并集,即 S={1,3,4}S = \{1, 3, 4\}。到达第 55 个格子的方案有如下 44 种:

  • 按顺序移动到第 1,2,3,4,51, 2, 3, 4, 5 个格子。
  • 按顺序移动到第 1,2,51, 2, 5 个格子。
  • 按顺序移动到第 1,4,51, 4, 5 个格子。
  • 按顺序移动到第 1,51, 5 个格子。

样例解释 2

S={3,5}S = \{3, 5\},无法到达第 55 个格子,所以输出 00

样例解释 4

请注意,答案需要对 998244353998244353 取模。

由 ChatGPT 4.1 翻译