思路:
选择m个位置是错误的,并且这m个位置错排。注意ll
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
long long f[205];
int main()
{
f[1]=0;
f[2]=1;
for(int i=3;i<=20;i++)
f[i]=(i-1)*(f[i-1]+f[i-2]);
int t;
cin>>t;
while(t--)
{
long long n,m;
cin>>n>>m;
long long ans=1;
for(int i=n;i>=n-m+1;i--)
ans*=i;
for(int i=m;i>=1;i--)
ans/=i;
cout<<ans*f[m]<<endl;
}
}