【NOIP 2011】计算系数(组合数+快速幂)
很容易就可以看出,答案等于
\(C_{k}^{n-1}*a^n*b^m\)
(如果不懂的,可以自行研究一下\({(ax+by)}^3\),\({(ax+by)}^4\)的系数规律)
然后...快速幂跑一下,杨辉三角一打就行了
#include<bits/stdc++.h>
#define K 1005
#define mod 10007
using namespace std;
int a,b,k,n,m;
int c[K+5][K+5];
void yh_print()
{
for(int i=0;i<=K;i++)
{
c[i][0]=1,c[i][i]=1;
}
for(int i=2;i<=K;i++)
{
for(int j=1;j<=i;j++)
{
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
}
}
}
inline int ksm(int x,int y)
{
int base=x,ans=1;
while(y)
{
if(y&1) ans=(ans*base)%mod;
base=(base*base)%mod;
y>>=1;
}
return ans%mod;
}
int main()
{
cin>>a>>b>>k>>n>>m;
yh_print();
a%=mod,b%=mod;
int p=ksm(a,n);
int q=ksm(b,m);
int s=(p*q)%mod;
cout<<(s*c[k][m])%mod;
return 0;
}
QQ40523591~欢迎一起学习交流~