Skip to content

Latest commit

 

History

History
72 lines (41 loc) · 881 Bytes

2017xian2.md

File metadata and controls

72 lines (41 loc) · 881 Bytes

Coin

  • 逆元,费马小定理
  • 题面

Code

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;

const long long mod=1000000007;

long long qpow(long long a,int n){

    long long base=a;

    long long ans=1;


    while(n>0){
        if(n&1){
            ans=(ans*base)%mod;

        }

        base=(base*base)%mod;


        n>>=1;


    }

    return ans;


}





int main()
{
    int n;
    cin>>n;
    while(n--){
        long long a,b,nn;
        //a分母
        scanf("%lld%lld%lld",&a,&b,&nn);
        long long fz=qpow(a-2*b,nn);
        long long fm=qpow(a,nn);
        long long nifm=qpow(fm,mod-2);
        long long ni2=qpow(2LL,mod-2);
        long long ans=((1+fz*nifm%mod)%mod*ni2)%mod;


        printf("%lld\n",ans);




    }


    return 0;
}