题解:SP13875 JOKER1 - Knifes Are Fun
这道题可以用排列组合的乘法原理,求出每把刀可能的编号数量,然后相乘即可。求每把刀可能的编号数量,可以用这把刀的
注意要对
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int T,n,a[70];
int main()
{
cin>>T;
while(T--)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1); //先排序,让范围小的编号先分配
int ans=1;
for(int i=1;i<=n;i++)
{
ans*=max(0,a[i]-i+1); //如果结果小于0,则无解,乘0使结果输出0
ans%=mod; //记得取模
}
cout<<ans<<'\n';
}
cout<<"KILL BATMAN"; //结束
return 0;
}