NOIP2011 计算系数
描述
给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数。
格式
输入格式
共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。
输出格式
输出共1行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007取模后的结果。
限制
1s
提示
对于30%的数据,有0 ≤ k ≤ 10;
对于50%的数据,有a = 1, b = 1;
对于100%的数据,有0 ≤ k ≤ 1000,0 ≤ n, m ≤ k,且n+m = k,0 ≤ a,b ≤ 1,000,000.
来源
NOIp2011提高组Day2第一题
初中杨辉三角
1 #include<iostream> 2 using namespace std; 3 4 const int mod=10007; 5 6 int a,b,k,n,m,ans; 7 int f[1001][1001]; 8 9 int main() 10 { 11 cin>>a>>b>>k>>n>>m; 12 a%=mod;b%=mod; 13 f[0][0]=1; 14 for(int i=1;i<=k;i++) f[i][0]=f[i][i]=1; 15 for(int i=2;i<=k;i++) 16 for(int j=1;j<k;j++) 17 f[i][j]=(f[i-1][j-1]+f[i-1][j])%mod; 18 ans=f[k][m]%mod; 19 for(int i=1;i<=n;i++) ans=(ans*a)%mod; 20 for(int i=1;i<=m;i++) ans=(ans*b)%mod; 21 cout<<ans<<endl; 22 return 0; 23 }