标签:space std clu 分治 pac ace http center strong
一、心得
二、题目和分析
2 10 9
2^10 mod 9=7
解题思路:分治,顾名思义,把一个大问题分解为多个小问题。
这里有一个公式,利用这个公式通过递归求得。
三、代码和结果
1 /* 2 递推方程 3 边界 4 p==0 1 5 p/2==0 f(p)=f(p/2)*f(p/2) 6 p/2==1 f(p)=f(p/2)*f(p/2)*f(1) 7 */ 8 #include <iostream> 9 #define ll long long 10 using namespace std; 11 12 ll f(ll b,ll p,ll k){ 13 if(p==0) return 1; 14 else { 15 ll tmp=f(b,p/2,k); 16 ll ans=((tmp%k)*(tmp%k))%k; 17 if(p/2==1) ans=(ans*(b%k))%k; 18 return ans; 19 } 20 } 21 22 int main(){ 23 ll b,p,k; 24 cin>>b>>p>>k; 25 cout<<f(b,p,k)<<endl; 26 return 0; 27 }
标签:space std clu 分治 pac ace http center strong
原文地址:http://www.cnblogs.com/Renyi-Fan/p/7135641.html