Binomial Coeffcients
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
3 1 1 10 2 954 723
示例输出
1 45 3557658
解:题意就是求解n的阶乘除以(n-k)的阶乘与k的阶乘的积所得的商并且商对10000003取模。在进行求解时可发现:a[1][1]=1;a[2][1]=2;a[2][2]=1;a[3][1]=3;a[3][2]=3;a[3][3]=1;a[4][1]=1;a[4][2]=6;a[4][3]=4;
a[4][4]=1;可发现规律:
n=k或k=0时,结果为1;
当k=1时,结果为n;
a[i][j]=(a[i-1][j-1]+a[i-1][j])%10000003;
代码采用递推打表:
#include<stdio.h>
int a[1005][1005];
int main()
{
int t,n,k;
int i,j;
scanf("%d",&t);
for(i=1;i<1005;i++)
{
a[i][0]=a[i][i]=1;
a[i][1]=i;
for(j=1;j<i;j++)
{
a[i][j]=(a[i-1][j-1]+a[i-1][j])%10000003;
}
}
while(t--)
{
scanf("%d %d",&n,&k);
if(n==k || k==0)
{
printf("1\n");
}
else{
printf("%d\n",a[n][k]);
}
}
}