组合数

公式递推代码

C(n, m)  = C(n -1, m - 1) + C(n - 1, m)

计算组合数的公式是:

c(m,n)=m!/(n!*(m-n)!)

 

利用杨辉三角来解决组合数可以避免数据超范围!!!

第二届山东省省赛

D Binomial Coeffcients

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;
int dp[1001][1001];
int main()
{
int t,n,m;
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(int i=1;i<=1000;i++)
{
dp[i][0]=1;
for(int j=1;j<=i;j++)
{
dp[i][j]=(dp[i-1][j]+dp[i-1][j-1])%10000003;
}
}
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
printf("%d\n",dp[n][m]);
}
return 0;
}

没有理解思想,只能 背下来了!

posted @ 2014-06-19 16:52  人艰不拆_zmc  阅读(207)  评论(0编辑  收藏  举报