#include<iostream>
using namespace std;
int main(){
int i,m,n,c;
__int64 a[22]={0,0,1},b[22]={1,1,2},x,y;//注意类型
for(i=3;i<22;i++){
a[i]=(i-1)*(a[i-1]+a[i-2]);//HDU2048的错排方法
b[i]=b[i-1]*i;//提前计算阶乘
}
while(cin>>c){
for(i=0;i<c;i++){
cin>>n>>m;
x=b[n]/(b[m]*b[n-m]);//查一下排列组合的公式
y=a[m]*x;
cout<<y<<endl;
}
}
}
杭电2049
最新推荐文章于 2021-02-21 12:59:53 发布