组合计数

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

输入格式

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

输出格式

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

数据范围

0n,mk1000  0≤n,m≤k≤1000,
n+m=kn+m=k,
0a,b1e6  0≤a,b≤1e6

输入样例:

1 1 3 1 2 

输出样例:

3

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define int long long
 4 const int mod = 10007;
 5 int a,b,k,n,m,ans;
 6 int power(int a,int b,int p){
 7     int ans = 1 % p;
 8     for(;b;b>>=1){
 9         if(b & 1) ans = ans * a % p;
10         a = a * a % p;
11     }
12     return ans;
13 }
14 signed main(){
15     ios::sync_with_stdio(0);
16     cin >> a >> b >> k >> n >> m;
17     ans = power(a,n,mod) * power(b,m,mod) % mod;
18     for(int i = 1, j = k; i <= n; i++,j--)
19         ans = ans * j % mod * power(i,mod - 2,mod) % mod;
20     cout << ans;
21     return 0;
22 }
View Code
 
原文地址:https://www.cnblogs.com/xcfxcf/p/12318228.html