#include using namespace std; #define int long long #define endl "\n" const int N = 100010; const int p = 1e9 + 7; int fact[N]; // 阶乘结果数组 int infact[N]; // 阶乘逆元结果数组 // 快速幂 int qmi(int a, int k) { int res = 1; while (k) { if (k & 1) res = res * a % p; a = a * a % p; k >>= 1; } return res; } signed main() { // base case fact[0] = infact[0] = 1; for (int i = 1; i < N; i++) { fact[i] = fact[i - 1] * i % p; infact[i] = infact[i - 1] * qmi(i, p - 2) % p; } int n; cin >> n; while (n--) { int a, b; cin >> a >> b; printf("%lld\n", fact[a] * infact[b] % p * infact[a - b] % p); } }