CF1569C Jury Meeting
题目描述
有 $n$ 个人聚在一起,为即将到来的比赛召开评审会议,第 $i$ 个评委想出了 $a_i$ 个题目,他们希望彼此分享。
首先,评委们决定一个顺序来依次介绍题目。这个顺序是 $1$ 到 $n$ 的一个排列 $p$(一个长度为 $n$ 的数组,每个整数 $1$ 到 $n$ 恰好出现一次)。
讨论过程如下:
- 如果评委 $p_1$ 还有题目没讲完,他就讲一个题目给大家。否则,跳过他。
- 如果评委 $p_2$ 还有题目没讲完,他就讲一个题目给大家。否则,跳过他。
- ...
- 如果评委 $p_n$ 还有题目没讲完,他就讲一个题目给大家。否则,跳过他。
- 如果还有评委有题目没讲完,则从头再来一轮。否则,讨论结束。
如果某个排列 $p$ 满足:没有任何评委连续讲出两道或更多自己的题目(即没有评委连续两轮都轮到自己讲题),我们称这个排列为“优美排列”。
请你计算有多少种“优美排列”。答案可能很大,请输出对 $998\,244\,353$ 取模的结果。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示评委人数。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),表示第 $i$ 个评委想出的题目数。
所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示“优美排列”的数量,对 $998\,244\,353$ 取模。
说明/提示
示例第一个测试用例说明:
有两种排列,$p = [1, 2]$ 和 $p = [2, 1]$。对于 $p = [1, 2]$,过程如下:
1. 第一个评委讲一个题目;
2. 第二个评委讲一个题目;
3. 第一个评委没有题目了,跳过他;
4. 第二个评委讲一个题目。
因此,第二个评委连续讲了两道题,所以该排列不是优美排列。
对于 $p = [2, 1]$,过程如下:
1. 第二个评委讲一个题目;
2. 第一个评委讲一个题目;
3. 第二个评委讲一个题目。
因此,这个排列是优美排列。
由 ChatGPT 4.1 翻译