P16807 [蓝桥杯 2026 国 Python A] 桌游足球
题目描述
小蓝和小桥进行了一场桌游足球比赛。整场比赛共进了 $N + M$ 个球,其中小蓝进了 $N$ 个球,小桥进了 $M$ 个球。
作为桌游足球的忠实选手,小蓝在赛前曾给自己制定了一项“挑战”:在比赛过程中的任意时刻,他的累计进球数都必须领先或者与小桥打平。如果在任何一个进球瞬间小桥反超了比分,这项挑战就宣告失败。
例如,若全场共进 $4$ 个球,小蓝进 $2$ 个球($N = 2$)小桥进 $2$ 个球($M = 2$),那么在所有可能的进球顺序中,只有(蓝-蓝-桥-桥)和(蓝-桥-蓝-桥)这 $2$ 种顺序能让小蓝成功完成挑战;而像(蓝-桥-桥-蓝)这样的顺序,在第三个球进完时,小蓝仅进 $1$ 个球,小桥进了 $2$ 个球,小桥实现反超,挑战提前宣告失败。
遗憾的是,比赛太过激烈,小蓝在赛后竟忘记了具体的进球顺序。对此,他希望通过数学方法来推导:在所有能够达成该最终比分的进球顺序中,一共有多少种不同的顺序能够让他成功完成这项挑战?
现在,请你编写程序,帮小蓝计算出满足条件的进球顺序总数。由于最终的方案数可能极其庞大,请输出结果对 $998244353$ 取模后的结果。
输入格式
输入共一行,包含两个正整数 $N$ 和 $M$,分别代表小蓝和小桥的最终进球数。
输出格式
输出共一行,包含一个整数,代表满足条件的进球顺序总数对 $998244353$ 取模后的结果。
说明/提示
### 【评测用例规模与约定】
对于 $30\%$ 的评测数据,$1 \le M \le N \le 10$。
对于所有评测数据,$1 \le M \le N \le 10^5$。