思路:
有点像错排的dp
记得开long long
C o d e Code Code:
#include <iostream>
#include <cstdio>
using namespace std;
long long f[25][25];
int n,k;
int main()
{
freopen ("k.in","r",stdin);
freopen ("k.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i = 1; i <= n; i++) f[i][i] = 1;
for(int i = 1; i <= n; i++)
for(int j = 1;j < i; j++)
f[i][j] = (i - j + 1) * f[i - 1][j - 1] + j * f[i - 1][j] ;//dp
printf("%lld",f[n][k] );
return 0;
}