You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
622 B

2 years ago
#include <iostream>
using namespace std;
typedef long long LL;
LL C(int a, int b) {
LL sum1 = 1, sum2 = 1;
for (int i = b + 1; i <= a; i++) sum1 *= i;
for (int i = 1; i <= a - b; i++) sum2 *= i;
return sum1 / sum2;
}
int main() {
LL f[21] = {0, 0, 1}; //这个初始化很牛B的样子,放过头雁打二雁而且f[1]=0,f[2]=1
//错排公式,预处理
for (int i = 3; i < 21; i++) f[i] = (i - 1) * (f[i - 1] + f[i - 2]);
int T;
cin >> T;
while (T--) {
int n, m;
cin >> n >> m;
cout << C(n, m) * f[m] << endl;
}
return 0;
}