#include <iostream>
#include <string>
#include<math.h>
#include<algorithm>
using namespace std;
long long jiecheng(int x){
long long s = 1;
for (int i = 1; i <= x; i++)
{
s *= i;
}
return s;
}
int main()
{
int n, m;
int l;
long long x, y, z;
long long a[21];
//错排
a[1] = 0;
a[2] = 1;
for (int i = 3; i < 21; i++)
{
a[i] = (a[i - 1] + a[i - 2])*(i - 1);
}
while (cin >> l)
{
while (l--)
{
cin >> n >> m;
//C(n,m)
x = jiecheng(n);
y = jiecheng(m);
z = jiecheng(n - m);
long long res = x / y / z;
//n中选m个,这m个错排
cout << res*a[m] << endl;
}
}
}
杭电oj2049 错排*排列组合
最新推荐文章于 2023-11-19 23:35:38 发布