27 条题解
-
2
使用分治思想,每次将指数 减半,再平方。但如果 是技术,则要再乘
#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
- 上传者