组合数
公式递推代码
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;
}
没有理解思想,只能 背下来了!