inlineintquickpow(int a,int b,int mod){int re =1;while(b){if(b &1) re = re * a % mod;
b >>=1;
a = a * a % mod;}return re % mod;}
应该很容易理解。
快速乘:防止计算
a
∗
b
a * b
a∗b溢出
和快速乘一样的思想
代码:
inlineintquickmul(int a,int b,int mod){int re =0;while(b){if(b &1) re = re + a % mod;
b >>=1;
a = a + a % mod;}return re;}
接下来就是两者结合的快速幂
inlineintquickmul(int a,int b,int mod){int re =0;while(b){if(b &1) re = re + a % mod;
b >>=1;
a = a + a % mod;}return re;}inlineintquickpow(int a,int b,int mod){int re =1;while(b){if(b &1) re =quickmul(re, a, mod);
re %= mod;
b >>=1;
a =quickmul(a, a, mod);
a %= mod;}return re;}