#include<iostream>
using namespace std;
long long num(int n,int m)
{
int i;
long long a=1,b=1,c=1;
for(i=1;i<=n;i++) a*=i;
for(i=1;i<=m;i++) b*=i;
for(i=1;i<=n-m;i++) c*=i;
return a/(b*c);
}
int main()
{
int c,i,n,m;
long long a[21]={0,0,1};
for(i=3;i<21;i++)//此处须知错牌的一些基础知识。
{
a[i]=(i-1)*(a[i-2]+a[i-1]);
}
while(cin>>c)
{
while(c--&&cin>>n>>m&&m>1&&m<=n&&n<=20)
{
cout<<a[m]*num(n,m)<<endl;
}
}
return 0;
}
考新郎-错排
最新推荐文章于 2021-03-28 01:15:14 发布