这个题第一眼 杨辉三角。。其实还有个高大上的名字 叫。。二项式定理 我才高一QAQ 后面这个名字不知道啊
不过知道杨辉三角也够了
1 -> 1a^0*b^0
1 1 ->1a+1b
1 2 1 ->1a^2+2ab+1b^2
1 3 3 1 ->…………
…………
只不过这道题多了一个x与y项的系数
无所谓 用整体思想 将ax看成u by看成v
再用上面的公式套 (将举出的例子中的a,b 换成u,v)
表达出一个含有uv 的式子
在将uv 换成ax,by在乘方即可(好良心啊 这个居然不用快速幂)
不过知道杨辉三角也够了
1 -> 1a^0*b^0
1 1 ->1a+1b
1 2 1 ->1a^2+2ab+1b^2
1 3 3 1 ->…………
…………
只不过这道题多了一个x与y项的系数
无所谓 用整体思想 将ax看成u by看成v
再用上面的公式套 (将举出的例子中的a,b 换成u,v)
表达出一个含有uv 的式子
在将uv 换成ax,by在乘方即可(好良心啊 这个居然不用快速幂)
数论什么的 再见吧 谁叫我数学学得烂
#include<iostream>
#include<cstdio>
#define MAXN 1000+10
#define LL long long
using namespace std;
LL aa[MAXN][MAXN];
LL a,b,k,n,m;
LL ans;
void ready()
{
for(int i=1;i<=k+1;i++)
{
for(int j=1;j<=i;j++)
{
if(j==1||i==j)
{
aa[i][j]=1;
continue;
}
aa[i][j]=(aa[i-1][j]+aa[i-1][j-1])%10007;
}
}
}
void readdata()
{
scanf("%lld%lld%lld%lld%lld\n",&a,&b,&k,&n,&m);
}
int main()
{
readdata();
ready();
int cja=1;
for(int i=1;i<=n;i++)
cja=(cja%10007)*(a%10007)%10007;
int cjb=1;
for(int i=1;i<=m;i++)
cjb=(cjb%10007)*(b%10007)%10007;
ans=(cjb*cja)%10007;
ans=(ans*aa[k+1][n+1])%10007;
printf("%d\n",ans);
}