AT_xmascon23_c Clamp Clamp Clamp
题目描述
给定正整数 $N$,将 $(0, 1, \ldots, 2N)$ 这 $2N+1$ 个数进行全排列,记排列为 $(a_0, a_1, \ldots, a_{2N})$,如果对于所有 $i = 0, 1, \ldots, N-1$,都有 $a_{2i+1} < a_{2i+2}$,则该排列属于集合 $A$。
对任意 $a = (a_0, a_1, \ldots, a_{2N}) \in A$,定义 $f(a)$ 如下:
- 令 $b_0 = a_0$。
- 对于 $i = 0, 1, \ldots, N-1$,令 $b_{i+1} = \min\{\max\{b_i, a_{2i+1}\}, a_{2i+2}\}$。
- 定义 $f(a) = b_N$。
给定整数 $N$,以及 $Q$ 个整数 $Z_1, Z_2, \ldots, Z_Q$。对于每个 $j = 1, 2, \ldots, Q$,求出满足 $f(a) = Z_j$ 且 $a \in A$ 的排列数,对 $998244353$ 取模。
输入格式
输入由标准输入给出,格式如下:
> $N$ $Q$ $Z_1$ $Z_2$ $\cdots$ $Z_Q$
输出格式
按 $j = 1, 2, \ldots, Q$ 的顺序,输出满足 $f(a) = Z_j$ 且 $a \in A$ 的排列数,各数之间用空格分隔,对 $998244353$ 取模。
说明/提示
### 样例解释 1
- 当 $a = (2, 3, 4, 0, 1), (3, 2, 4, 0, 1), (4, 2, 3, 0, 1)$ 时,$f(a) = 1$。
- 当 $a = (0, 1, 2, 3, 4), (1, 0, 2, 3, 4), (2, 0, 1, 3, 4)$ 时,$f(a) = 3$。
- 其余 $a \in A$ 均有 $f(a) = 2$。
### 数据范围
- $1 \le N \le 10^7$。
- $1 \le Q \le 250\,000$。
- $0 \le Z_1 < Z_2 < \cdots < Z_Q \le 2N$。
由 ChatGPT 5 翻译