2 2 2 3 2
1 3
#include <stdio.h> typedef long long ll ; ll f[30] ; ll combination(ll n , ll m) { ll ans = 1 ; for(ll i = n ; i > n-m ; --i) { ans *= i ; } for(ll i = m ; i > 0 ; --i) { ans /= i ; } return ans ; } int main() { int t ; scanf("%d",&t); f[0] = 1 ; f[1] = 0 , f[2] = 1 ; for(int i = 3 ; i <= 20 ; ++i) { f[i] = (i-1)*(f[i-1]+f[i-2]) ; } while(t--) { ll n , m ; scanf("%I64d%I64d",&n,&m) ; ll ans = combination(n,m)*f[m] ; printf("%I64d\n",ans) ; } return 0 ; }
原文地址:http://blog.csdn.net/lionel_d/article/details/45532031