快速幂加逆元!

#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

猜你喜欢

转载自www.cnblogs.com/lightac/p/10747278.html
今日推荐