rt,我使用这份代码是 30 分:
#include<iostream>
using namespace std;
long long C[1005][1005];
int T,n,m,x[1005];
long long ans=1,sum=0;
int main(){
for(int i=0;i<=1000;i++){
for(int j=0;j<=i;j++){
if(j==0)C[i][j]=1;
else C[i][j]=(C[i-1][j]+C[i-1][j-1])%1000000007;
// cout<<C[i][j]<<' ';
}
// cout<<endl;
}
cin>>T;
while(T--){
cin>>n>>m;
ans=1;sum=0;
for(int i=1;i<=m;i++){
cin>>x[i];
sum+=x[i];
}
if(sum>n)n++;
for(int i=1;i<=m;i++){
ans=(1ll*ans*C[n][x[i]])%1000000007;
n-=x[i];
}
cout<<ans%1000000007<<endl;
}
return 0;
}
但是当我把数组大小开到 2000,它就过了。
请问这是因为代码特性还是因为测试点有大于数据范围的?