题目描述:
给定一个多项式 (ax+by)k,请求出多项式展开后 x^n*y^m 项的系数。
输入格式
共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。
输出格式
输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。
数据范围
0≤n,m≤k≤1000,
n+m=k,
0≤a,b≤10^6
输入样例:
1 1 3 1 2
输出样例:
3
解题思路:
由题意可知所求系数与输入数的关系是Ckn*a^n*b^m;
组合计数Ckn可以有公式Ckn=Ck-1,n-1+Ck,n-1递推得到
a^n与b^m则需要快速幂求得。
参考代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010,MOD = 10007;
int c[N][N];
int a,b,k,n,m;
int qmi(int a,int b)
{
a%=MOD;
int res = 1;
while(b)
{
if(b&1) res = res * a % MOD;
b >>= 1;
a = a*a%MOD;
}
return res;
}
int main()
{