快速幂+矩阵快速幂
一. 快速幂入门
相关博客:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。https://www.cnblogs.com/CXCXCXC/p/4641812.html
https://www.cnblogs.com/vincent-hwh/p/5990331.html
二进制位运算:
由于是二进制,很自然地想到用位运算这个强大的工具:&和>>
&运算通常用于二进制取位操作,例如一个数 & 1 的结果就是取二进制的最末位。 还可以判断奇偶x&1==0为偶,x&1==1为奇。 >>运算比较简单二进制去掉最后一位1 int poww(int a,int b) 2 { 3 int base=a; 4 long long ans=1; 5 while(b>0) 6 { 7 if(b&1!=0)//判断为奇数 8 ans*=base; 9 base*=base; 10 b>>=1;//位运算,类似于开平方根,但是对b=1处理时b>>=1,b的值是0,若是平方仍为1 11 } 12 return ans; 13 }
1 int poww(int base,int b,int mod) //(base^b)%mod 2 { 3 long long ans=1; 4 while(b>0) 5 { 6 if(b&1!=0)//判断为奇数 7 ans=(ans*base)%mod; 8 base=(base*base)%mod; 9 b>>=1;//位运算,类似于开平方根,但是对b=1处理时b>>=1,b的值是0,若是平方仍为1 10 } 11 return ans; 12 }
二.取模运算的性质:
(1)(a+b)%c=(a%c+b%c)%c
(2)(ab)%c=(a%c)(b%c)%c
相关题目:
Noip2013TG D1T1转圈游戏
只需解出 ans=(x+m*10^k)%n
Bzoj1008越狱
只需解出ans=m^n-m*(m-1)^(n-1)
https://blog.csdn.net/qq_24489717/article/details/51120679 https://www.cnblogs.com/CXCXCXC/p/4641812.html https://blog.csdn.net/yu121380/article/details/79900385 https://www.xuebuyuan.com/3259372.html https://www.cnblogs.com/lqsukida/p/10161157.html https://www.jianshu.com/p/25eba927d9da

更多精彩