公式递推代码

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;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

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