AT_agc054_e [AGC054E] ZigZag Break
题目描述
给定整数 $N,A$。请计算满足以下条件的 $(1,2,\cdots,N)$ 的排列 $P=(P_1,P_2,\cdots,P_N)$ 的个数,并将结果对 $998244353$ 取模。
- $P_1=A$。
- 通过重复以下操作,可以将 $P$ 的元素个数变为 $2$:
- 选择 $3$ 个**连续的**元素 $x,y,z$。此时,要求 $y\max(x,z)$ 成立。然后,将 $y$ 从 $P$ 中删除。
对于每个输入文件中的 $T$ 个测试用例,请输出答案。
输入格式
输入以以下格式从标准输入给出。
> $T$
> $case_1$
> $case_2$
> $\vdots$
> $case_T$
每个测试用例的格式如下:
> $N\ A$
输出格式
对于每个测试用例,输出一行答案。
说明/提示
### 限制条件
- $1\leq T\leq 5\times 10^5$
- $3\leq N\leq 10^6$
- $1\leq A\leq N$
- 输入的所有值均为整数
### 样例解释 1
例如,当 $N=4,A=2$ 时,$P=(2,1,4,3)$ 满足条件。以下是操作的一个例子:
- 选择 $(x,y,z)=(2,1,4)$,删除 $1$,$P$ 变为 $(2,4,3)$。
- 选择 $(x,y,z)=(2,4,3)$,删除 $4$,$P$ 变为 $(2,3)$。
由 ChatGPT 4.1 翻译