#CF1909F2. 小排列问题(困难版)
小排列问题(困难版)
小排列问题(困难版)
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定整数 和长度为 的数组 ,其中 。
对 的一个排列 ,若对每个 都满足:当 时,前缀 中不超过 的数恰好有 个,则称 是好排列。
求好排列的数量,答案对 取模。
输入格式
第一行一个整数 ,表示测试数据组数。
每组数据的第一行一个整数 ,第二行为 个整数 。
输出格式
对每组数据输出一行一个整数,表示好排列数对 取模的结果。
样例输入 1
3
5
-1 -1 -1 -1 -1
5
1 2 3 4 5
6
0 2 2 2 -1 -1
样例输出 1
120
1
4
数据范围
- ;
- ;
- ;
- 单个输入中所有测试数据的 之和不超过 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | |
| 2 | ||
| 3 | 40 | 无特殊限制 |
计分方式
本题按测试点独立计分,同一子任务中的测试点等分。