#ATfps24h. Jump

Jump

AT_fps_24_h ジャンプ

题目描述

在二维坐标平面上,棋子初始放置在 (0,0) (0, 0)

你可以进行以下操作任意次数(包括零次):

  • 选择一对整数 (a,b) (a, b) ,满足 0a1 0 \leq a \leq 1 0b 0 \leq b ,并且 (a,b)(0,0) (a, b) \neq (0, 0)
  • 如果当前棋子的位置是 (x,y) (x, y) ,则将其移动到 (x+a,y+b) (x+a, y+b)

请计算将棋子最终移动到 (N,M) (N, M) 的所有操作序列数,并输出答案对 998244353 998244353 取模的结果。

输入格式

输入为标准输入,格式如下:

N N M M

输出格式

输出答案。

输入输出样例 #1

输入 #1

2 1

输出 #1

5

输入输出样例 #2

输入 #2

12345 67890

输出 #2

824829859

说明/提示

样例解释 1

每一种有效的操作序列,其经过的坐标如下(共 5 种情况):

  • (0,0)(0,1)(1,1)(2,1) (0, 0) \to (0, 1) \to (1, 1) \to (2, 1)
  • (0,0)(1,0)(1,1)(2,1) (0, 0) \to (1, 0) \to (1, 1) \to (2, 1)
  • (0,0)(1,0)(2,0)(2,1) (0, 0) \to (1, 0) \to (2, 0) \to (2, 1)
  • (0,0)(1,0)(2,1) (0, 0) \to (1, 0) \to (2, 1)
  • (0,0)(1,1)(2,1) (0, 0) \to (1, 1) \to (2, 1)

数据范围

  • 1N2×105 1 \leq N \leq 2 \times 10^5
  • 1M2×105 1 \leq M \leq 2 \times 10^5
  • 所有输入数值均为整数。

由 ChatGPT 5 翻译