NOIP2011 计算系数

描述

给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数。

格式

输入格式

共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。

输出格式

输出共1行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007取模后的结果

样例1

样例输入1[复制]

 
1 1 3 1 2

样例输出1[复制]

 
3

限制

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 }
原文地址:https://www.cnblogs.com/InWILL/p/6052352.html