标签:
给定一个多项式(ax+by)^k,请求出多项式展开后x^n*y^m项的系数。
共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。
输出共1行,包含一个整数,表示所求的系数,这个系数可能很大,输出对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; }
标签:
原文地址:http://www.cnblogs.com/Ackermann/p/5617847.html