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