Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
Binomial Coeffcients
TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描写叙述
输入
输出
演示样例输入
3
1 1
10 2
954 723
演示样例输出
1
45
3557658
/*******************
组合数学
组合数 用 递推 :组合数公式 C[n][m] = C[n-1][m-1] + C[n-1][m]
************************/
Code:
#include <iostream> #include<string.h> using namespace std; const int mod = 10000003; const int N = 1005; int C[N][N]; void Init () { int i,j; for (i=1;i<=1004;i++) { C[i][0]=C[i][i]=1; C[i][1] = i; for (j=1;j<i;j++) if(C[i][j]==0) C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod; } } int main() { int c,m,n; memset(C,0,sizeof(C)); Init(); cin>>c; while(c--) { cin>>m>>n; if(m==n||n==0) cout<<1<<endl; else cout<<C[m][n]<<endl; } return 0; } /************************************** Problem id : SDUT OJ 2164 User name : CY_ Result : Accepted Take Memory : 4408K Take Time : 20MS Submit Time : 2014-04-20 11:15:09 **************************************/