AT_abc425_e [ABC425E] Count Sequences 2

题目描述

给定一个正整数 $N$ 和一个长度为 $N$ 的正整数序列 $C=(C_1, C_2, \ldots, C_N)$。 请你对于每组测试数据(共 $T$ 组),求满足以下条件的正整数序列的数量,并对给定正整数 $M$ 取模后输出: - 序列中所有元素都在 $1$ 到 $N$ 之间(包含 $1$ 和 $N$)。 - 对于每个 $i=1,2,\ldots,N$,数 $i$ 在序列中恰好出现 $C_i$ 次。 $T$ 组测试数据共用同一个 $M$。请分别输出每组测试数据的答案。

输入格式

输入通过标准输入给出,格式如下: > $T$ $M$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 第 $i$ 组测试数据,$\mathrm{case}_i$,格式如下: > $N$ $C_1$ $C_2$ $\ldots$ $C_N$

输出格式

输出 $T$ 行,每行一个答案。第 $i$ 行输出第 $i$ 组测试数据的答案。

说明/提示

### 样例解释 1 对于第一组测试数据,满足条件的序列有 $(1,1,2,2)$、$(1,2,1,2)$、$(1,2,2,1)$、$(2,1,1,2)$、$(2,1,2,1)$、$(2,2,1,1)$,共 6 个序列。 ### 数据范围 - $1 \leq T \leq 10^5$ - $2 \leq M \leq 10^9$ - $1 \leq N$ - $1 \leq C_i$ - $\sum_{i=1}^N C_i \leq 5000$ - 所有测试数据中 $N$ 的总和不超过 $3\times 10^5$ - 所有输入均为整数。 由 ChatGPT 5 翻译