27 条题解

  • 2
    @ 2022-10-23 11:23:50

    使用分治思想,每次将指数 nn 减半,再平方。但如果 nn 是技术,则要再乘 aa

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int INF=0x3f3f3f3f;
    inline ll read()
    {
    	ll x=0,f=1;char ch=getchar();
    	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
    	return x*f;
    }
    ll quickpow(ll a,ll b,ll m){
    	if(b==0)  return 1;
    	ll tmp=quickpow(a,b/2,m)%m;
    	ll ans=tmp*tmp%m;
    	if(b&1)  ans=ans*a%m;
    	return ans; 
    }
    int main(){
    	ll a,b,p;
    	a=read(),b=read(),p=read();
    	cout<<quickpow(a,b,p);
    	return 0;
    }
    
    

    信息

    ID
    171
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    1165
    已通过
    373
    上传者