题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049
//C++代码
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int C,n,m,k,i;
__int64 t,f[21];
f[1]=0,f[2]=1;
for(i=3;i<=20;i++) f[i]=(i-1)*(f[i-1]+f[i-2]);
cin>>C;
while(C--){
cin>>n>>m;
t=1;
k=n-m;
for(i=1;i<=n-m;i++) t=t*(n+1-i)/i;
printf("%I64d\n",t*f[m]);
}
return 0;
}
本文提供了一种使用C++解决HDU 2049问题的方法,该问题涉及递推公式计算特定数值组合。通过预处理递推数列,并结合组合数学中的排列组合思想来高效求解。

被折叠的 条评论
为什么被折叠?



