题单练习 GESP八级真题-编程题
← 上一题 下一题 →

A7032 | [GESP202312 八级] 奖品分配

来源2023
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

班上有 $N$ 名同学 ,学号从 $0$ 到 $N-1$。有 $M$ 种奖品要分给这些同学,其中,第 $i$ 种奖品总共有 $a_i$ 个 ($i = 0,1,...,M -1$)。巧合的是,奖品的数量不多不少,每位同学都可以恰好分到⼀个奖品,且最后剩余的奖品不超过 $1$ 个(即:$N ≤ a_0 +a_1+....+a_{M-1} ≤ N+1$)。

现在,请你求出每个班级礼物分配的⽅案数,所谓⽅案,指的是为每位同学都分配⼀个种类的奖品。只要有⼀位同学获得了不同种类的奖品,即视为不同的⽅案。⽅便起见,你只需要输出⽅案数对 $10^9+7$ 取模后的结果即可。

共有 $T$ 个班级都⾯临着奖品分配的问题,你需要依次为他们解答。

输入格式

第一行一个整数 $T$,表示班级数量。
接下来 $T$ 行,每行若千用单个空格隔开的正整数。首先是两个正整数 $N,M$,接着是 $M$ 个正整数 $a_0 ,a_1,....,a_{M-1}$ ,保证 $N ≤ a_0 +a_1+....+a_{M-1} ≤ N+1$

输出格式

输出 $T$ 行,每行一个整数,表示该班级分配奖品的方案数对 $10^9+ 7$ 取模的结果

输入输出样例

输入 #1
3
3 2 1 2
3 2 1 3
5 3 3 1 1
输出 #1
3
4
20
输入 #2
5
100 1 100
100 1 101
20 2 12 8
123 4 80 20 21 3
999 5 101 234 499 66 99
输出 #2
1
1
125970
895031741
307187590
C++ 编辑器
输入
输出