计算系数

【题目描述】

现给定一个多项式(ax+by)k,请求出多项式展开后xn*ym项的系数。

【输入描述】

输入五个整数a、b、k、n、m。

【输出描述】

输出一个整数,表示所求的系数对10007取模后的结果。

【样例输入】

1 1 3 1 2

【样例输出】

3

【数据范围及提示】

对于30%的数据,有0 ≤ k ≤ 10;

对于50%的数据,有a = 1,b = 1;

对于100%的数据,有0 ≤ k ≤ 1000,0 ≤ n,m ≤ k,且n + m = k,0 ≤ a,b ≤ 1000000。

源代码:

#include<cstdio>
int m,n,k,t1,t2,q=10007,ans,f[1001][1001];
int Qsqr(int x,int t)
{
    int num=1;
    while (t)
    {
        if (t&1)
          num=num*x%q;
        x=x*x%q;
        t=t>>1;
    }
    return num;
}
int main()
{
    scanf("%d%d%d%d%d",&t1,&t2,&k,&n,&m);
    ans=Qsqr(t1%q,n); //命!是不公平的命指使你到这儿来的!
    ans=ans*Qsqr(t2%q,m)%q;
    for (int a=2;a<=k+1;a++) //杨辉三角。
    {
        f[a][1]=f[a][a]=1;
          for (int b=2;b<=m+1&&b<a;b++)
            f[a][b]=(f[a-1][b-1]+f[a-1][b])%q;
    }
    printf("%d",ans*f[k+1][m+1]%q);
    return 0;
}
原文地址:https://www.cnblogs.com/Ackermann/p/5617847.html