CF1784F Minimums or Medians
题目描述
Vika 有一个包含所有从 $1$ 到 $2n$ 的连续正整数的集合。
Vika 恰好会进行 $k$ 次如下两种操作中的一种:
- 取出当前集合中最小的两个整数并将它们移除;
- 取出当前集合中中位数的两个整数并将它们移除。
这里的中位数指的是:如果将集合中的元素按升序排列,正好位于中间的两个整数。注意,Vika 的集合大小始终为偶数,因此中位数的两个整数是唯一确定的。例如,集合 $\{1, 5, 6, 10, 15, 16, 18, 23\}$ 的两个中位数是 $10$ 和 $15$。
经过 $k$ 次操作后,Vika 最终能得到多少种不同的集合?请输出这个数对 $998\,244\,353$ 取模的结果。若两个集合中存在某个整数属于其中一个集合但不属于另一个集合,则认为这两个集合不同。
输入格式
一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 10^6$)。
输出格式
输出一个整数,表示 Vika 最终能得到的不同集合的数量,对 $998\,244\,353$ 取模。
说明/提示
在第一个样例中,Vika 的初始集合为 $\{1, 2, 3, 4, 5, 6\}$。她可以移除最小的两个数,得到 $\{3, 4, 5, 6\}$,也可以移除中位数的两个数,得到 $\{1, 2, 5, 6\}$。
在第二个样例中,Vika 最终可以得到 $\{1, 6\}$、$\{3, 6\}$ 或 $\{5, 6\}$。例如,Vika 可以先移除最小的两个数($\{1, 2, 3, 4, 5, 6\} \rightarrow \{3, 4, 5, 6\}$),然后移除中位数的两个数($\{3, 4, 5, 6\} \rightarrow \{3, 6\}$)。
在第三个样例中,无论 Vika 如何选择,最终都会得到一个空集合。
由 ChatGPT 4.1 翻译