题解 100% AC
2025-09-24 18:59:19
发布于:江苏
7阅读
0回复
0点赞
要用printf(不然会超时)
#include <bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int t,n,m,k,C[1003][1003],mi[2003];
int main(){
for(int i=0;i<=1000;i++)for(int j=0;j<=i;j++)C[i][j]=(j==0||j==i?1:C[i-1][j]+C[i-1][j-1]),C[i][j]%=mod;
mi[0]=1;
for(int i=1;i<=2000;i++)mi[i]=mi[i-1]*2%mod;
cin>>t;
while(t--){
cin>>n>>m>>k;
if(m-2*k<0||m-2*k>n-k)cout<<0<<endl;
else printf("%lld\n",(1LL*C[n][k]*mi[m-2*k]%mod)*C[n-k][m-2*k]%mod);
}
return 0;
}
这里空空如也
有帮助,赞一个