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 翻译