乐逍遥xwl

导航

快速幂模板

快速幂的时间复杂度就是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 }

 

posted on 2019-03-08 21:41  乐逍遥xwl  阅读(144)  评论(0编辑  收藏  举报