#include<bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=10007; ll fac[1050]; ll q_pow(ll a,ll b) { ll ans=1; while(b) { if(b&1) ans=(ans*a)%mod; a=(a*a)%mod; b>>=1; } return ans; } int main() { fac[0]=1; for(int i=1;i<=1000;i++) //这部预处理可以实现优化 fac[i]=(fac[i-1]*i)%mod; ll a,b,c,k,e,f,g,ans; cin>>a>>b>>c>>k>>e>>f>>g; ans=q_pow(a,e)%mod; ans=ans*q_pow(b,f)%mod; ans=ans*q_pow(c,g)%mod; ans=ans*fac[k]*q_pow(fac[e],mod-2)%mod; ans=ans*q_pow(fac[f],mod-2)%mod*q_pow(fac[g],mod-2)%mod; cout<<ans<<endl; return 0; } // 3 2 1 4 1 2 1 // 144 // 3 2 1 4 1 2 1 // 75
快速幂加逆元!
作者:LightAc
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。