KK's Chemical

Accepts: 11
Submissions: 40
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
我们可爱的KK有一道困难的化学题目:实验室有$N\left(1\leq N\leq 100 \right)$瓶化学药品,编号为$0$到$N-1$,现在KK知道第i瓶当且仅当和第$c[i]$瓶放在一起时会发生爆炸。KK得到任务要整理实验室,他需要将他们装进k个不同的盒子里。显然,为了KK的生命安全,你不能把两瓶会造成爆炸的药品放进同一个箱子。现在KK想知道有多少种不同的方案。由于答案可能会非常非常的大,所有将最后答案取${10}^{9}+7$的模即可。保证$c[i] \neq i$。
输入描述
第一行一个数$T\left( 1\leq T\leq 200\right)$,表示数据组数。
每组数据两行,第一行两个整数$N\left(1\leq N\leq 100 \right)$和$K\left(1\leq K\leq 1000 \right)$,表示化学药品的个数和需要放入的盒子数。
接下来第二行$N$个整数$c[i]\left( 0\leq c[i]\leq N-1\right)$。
输出描述
对于每一个数据输出一个整数,表示方案数对${10}^{9}+7$取模后的结果。
输入样例
3
3 3
1 2 0
4 3
1 2 0 0
3 2
1 2 0
输出样例
6
12
0