递推
有T组case,T<=10000。每个case有两个整数m和n,0<m<=2000,0<n<=2000.
Output
对于每个case,输出一个值,表示总的计算量,也许这个数字很大,那么你只需要输出除1007留下的余数即可。
Sample Input
2 1 3 2 3
Sample Output
3 3
#include<iostream> using namespace std; #include<cstdio> int c[2010][2010]; int main() { int i,j; for(i=1;i<=2000;i++) { c[i][0]=1; c[i][1]=i%1007; } for(i=2;i<=2000;i++) { for(j=2;j<=i;j++) { c[i][j]=(c[i-1][j]%1007+c[i-1][j-1]%1007)%1007; } } int t,m,n; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); if(m>n) { printf("0\n");continue; } else printf("%d\n",c[n][m]); } return 0; }