P16809 [蓝桥杯 2026 国 Python A] 前缀奇偶

题目描述

小蓝手中有 $n$ 个任务,各个任务的耗时互不相同,分别为 $1$ 分钟、$2$ 分钟、$\cdots$、$n$ 分钟。 小蓝需要选择一个顺序依次完成这些任务。每当完成一个任务时,他都会记录下从开始到当前累计消耗的总时间。 假设某种执行顺序中,各任务的耗时依次为 $a_1, a_2, \ldots, a_n$,那么在完成第 $i$ 个任务时,记录的累计总时间为: $$\begin{aligned} S_i = a_1 + a_2 + \dots + a_i \end{aligned}$$ 如果记录的 $n$ 个时间 $S_1, S_2, \ldots, S_n$ 中,恰好有 $k$ 个为偶数,则称这种执行顺序是符合要求的。 现在请你帮助小蓝计算,一共有多少种不同的执行顺序符合要求。由于答案可能很大,你只需要输出答案对 $998244353$ 取模后的结果。

输入格式

输入一行,包含两个整数 $n, k$。

输出格式

输出一个整数,表示答案。

说明/提示

### 【样例说明】 当 $n = 3, k = 1$ 时,满足要求的执行顺序有: $$\begin{aligned} 1, 2, 3 \end{aligned}$$ 和 $$\begin{aligned} 3, 2, 1 \end{aligned}$$ 以执行顺序 $1, 2, 3$ 为例,三个完成时刻分别为 $1, 3, 6$,其中只有 $6$ 是偶数。 ### 【评测用例规模与约定】 对于 $30\%$ 的评测用例,$1 \le n \le 10$; 对于 $60\%$ 的评测用例,$1 \le n \le 5000$; 对于所有评测用例,$1 \le n \le 10^6$, $0 \le k \le n$。