fork download
  1. #include <iostream>
  2. #include <cstring>
  3. #define ll long long int
  4. #define mod 1000000007
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9. int t;
  10. cin>>t;
  11. while(t--){
  12. int i,j,k,c,n,m;
  13. cin>>n>>c>>m;
  14. int dp[c+1][n+1];
  15. int bin[n+1][n+1];
  16. memset(dp, 0, sizeof(dp));
  17. memset(bin, 0, sizeof(bin));
  18. dp[0][0]=1;
  19. for(i=0;i<=n;i++){
  20. bin[i][0]=1;
  21. }
  22. for(i=1;i<=n;i++){
  23. for(j=1;j<=i;j++){
  24. bin[i][j]=(bin[i-1][j]+bin[i-1][j-1])%mod;
  25. }
  26. }
  27. for(i=1;i<=c;i++){
  28. for(j=1;j<=n;j++){
  29. ll res=0, p, q;
  30. for(k=m;k<=j;k++){
  31. p=(ll)dp[i-1][j-k]%mod;
  32. q=bin[j][k]%mod;
  33. res=(res+ p*q)%mod;
  34. }
  35. dp[i][j]=(res/i)%mod;
  36. }
  37. }
  38. /*for(i=0;i<=c;i++){
  39.   for(j=0;j<=n;j++){
  40.   cout<<dp[i][j]<< " ";
  41.   }cout<<endl;
  42.   }*/
  43. cout<<dp[c][n]<<endl;
  44. }
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 4172KB
stdin
1
2 1 2
stdout
1