题解
2025-10-31 20:43:19
发布于:上海
0阅读
0回复
0点赞
其实这题就是二项式展开定理加上幂的计算
由于这题数据较小,可以不用快速幂求解
其实题目很简单,学会数学基础知识就可以得到思路
具体就是令杨辉三角的值为则答案就是
代码显而易见
#include<iostream>
using namespace std;
const long long P=10007;
long long a,b,k,n,m,tri[1050][1050];
long long fp(long long a,long long p){//快速幂
long long res=a,ans=1;
while (p){
if (p%2){
ans=(ans*res)%P;
}
res=(res*res)%P;
p/=2;
}
return ans;
}
int main(){
tri[0][0]=1;
cin>>a>>b>>k>>n>>m;
for (int i=1;i<=k;i++){
for (int j=0;j<k;j++){
tri[i][j]=tri[i-1][j];
if (j!=0)tri[i][j]+=tri[i-1][j-1];//杨辉
tri[i][j]%=P;
}
}
long long g=tri[k][n];
cout<<((g*fp(a,n))%P*fp(b,m))%P;//答案
return 0;
}
这里空空如也



有帮助,赞一个