P12819 [NERC 2021] Fancy Stack

题目描述

小 Fiona 有 $n$ 个大小各异的积木 $a_1, a_2, \ldots, a_n$,其中 $n$ 为偶数。有些积木的大小可能相同。她想把这些积木一块一块地堆叠起来,形成一个**花式**堆叠。 设 $b_1, b_2, \ldots, b_n$ 为从顶部到底部的积木大小序列。由于 Fiona 要使用所有积木,$b_1, b_2, \ldots, b_n$ 必须是 $a_1, a_2, \ldots, a_n$ 的一个排列。Fiona 认为堆叠是**花式**的,当且仅当满足以下两个条件: 1. 第二块积木严格大于第一块,之后每块积木交替严格小于或严格大于前一块。形式化地说,$b_1 < b_2 > b_3 < b_4 > \ldots > b_{n-1} < b_n$。 2. 位于偶数位置的积木大小严格递增。形式化地说,$b_2 < b_4 < b_6 < \ldots < b_n$(记住 $n$ 是偶数)。 ![](https://cdn.luogu.com.cn/upload/image_hosting/16lldnv3.png) 如果两个堆叠对应的序列 $b_1, b_2, \ldots, b_n$ 在至少一个位置上不同,则认为它们是不同的堆叠。 Fiona 想知道她能用所有积木堆出多少种不同的花式堆叠。由于大数字会让 Fiona 害怕,请将结果对 $998\,244\,353$ 取模后输出。

输入格式

每个输入包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 2500$)。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$ —— Fiona 拥有的积木数量($2 \le n \le 5000$;$n$ 为偶数)。第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$ —— 积木的大小,按非递减顺序给出($1 \le a_1 \le a_2 \le \dotsb \le a_n \le n$)。 保证所有测试用例的 $n$ 之和不超过 $5000$。

输出格式

对于每个测试用例,输出可以构建的花式堆叠的数量,结果对 $998\,244\,353$ 取模。

说明/提示

翻译由 DeepSeek V3 完成