快速幂模板
快速幂的时间复杂度就是O(logn),与不用算法的时间复杂度O(n)相比,在数据量越大的时候,优化效果越明显。
mod可随题目而变,注意题目多有边算边mod的操作......
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<cmath>
5 #include<cstdlib>
6 #include<algorithm>
7 #include<map>
8 #include<set>
9 #include<vector>
10 using namespace std;
11 #define ll long long
12 const int mod=1e9+7;
13 ll int quickmi(ll int a, ll int n)//a的n次幂
14 {
15 ll int ans=1;
16 while(n)
17 {
18 if(n&1)
19 ans=(ans*a)%mod;
20 a=(a*a)%mod;
21 n>>=1;
22 }
23 return ans;
24 }
25 int main()
26 {
27 int a,n;
28 cin>>a>>n;
29 cout<<quickmi(a,n)<<endl;
30 return 0;
31 }
大佬见笑,,