P16810 [蓝桥杯 2026 国 Python A] 亮灭反转
题目描述
小蓝面前排列着 $n$ 盏灯,每盏灯起初要么是亮的,要么是灭的。因此,一共有 $2^n$ 种不同的初始状态。
对于某种初始状态,小蓝会进行 $n + 1$ 次独立的观察,每次观察均直接从该初始状态出发(各次观察之间互不影响):
- 第 $0$ 次观察:不改变任何灯的状态,记录此时整排灯中亮灯的数量。
- 第 $k$ 次观察($1 \le k \le n$):在初始状态的基础上,先将前 $k$ 盏灯的状态进行反转(亮变灭、灭变亮),然后记录此时整排灯中亮灯的数量。
记这 $n + 1$ 次观察得到的亮灯数量依次为 $b_0, b_1, \ldots, b_n$。如果在序列 $b_0, b_1, \ldots, b_n$ 中,不同元素的个数恰好为 $m$,则称这个初始状态是美好的。
现在,请你帮助小蓝计算,一共有多少种美好的初始状态。由于答案可能很大,你只需要给出答案对 $998244353$ 取模后的结果即可。
输入格式
输入一行,包含两个整数 $n$ 和 $m$,中间用一个空格隔开。
输出格式
输出一个整数,表示合法初始状态的数量对 $998244353$ 取模后的结果。
说明/提示
### 【样例说明】
当 $n = 3, m = 2$ 时,符合要求的合法初始状态共有 $2$ 种,分别为“灭、亮、灭”和“亮、灭、亮”:
若初始状态为“灭、亮、灭”时,执行各次观察得到的亮灯数量序列 $b$ 为 $[1, 2, 1, 2]$。其中不同元素有 $1$ 和 $2$,共 $2$ 种。
若初始状态为“亮、灭、亮”时,执行各次观察得到的亮灯数量序列 $b$ 为 $[2, 1, 2, 1]$。其中不同元素有 $2$ 和 $1$,共 $2$ 种。
可以验证,只有这 $2$ 种初始状态满足不同元素个数恰好为 $2$ 的条件。
### 【评测用例规模与约定】
对于 $30\%$ 的评测用例,$1 \le n \le 20$;
对于 $60\%$ 的评测用例,$1 \le n \le 3000$, $1 \le m \le 45$;
对于所有评测用例,$1 \le n \le 2 \times 10^5$, $1 \le m \le 45$。