最基础的递推法
#include <iostream>
using namespace std;
const int N=2010, P=1e9+7;
int C[N][N];
void init(){
for(int i=0; i<N; i++) C[i][0] = 1;
for(int i=1; i<N; i++)
for(int j=1; j<=i; j++)
C[i][j]=(C[i-1][j]+C[i-1][j-1])%P;
}
int main(){
init();
int T, n, m;
cin >> T;
while(T--){
cin >> n >> m;
printf("%d\n", C[n][m]);
}
return 0;
}