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