快速冪
利用了二進位制的特性,話說二進位制真有用。。(還有個矩陣快速冪)
時間複雜度:o(log n)
模板:
ll quick_pow
(ll x,ll y)
return ans;
}
龜速乘
求快速冪時,當兩個1e9的數相乘時會爆掉long long,這時就有了龜速乘完美的避免了這個問題。(你也可以手寫高精度解決這個問題)
時間複雜度:o(log n)
模板:
ll quick_mull
(ll x,ll y)
return ans;
}
快速乘
利用了long long和long double 的精度,有精度損失問題,不建議使用。
時間複雜度:o(1)
貼個板子:
ll quick_mul
(ll a,ll b,ll mod)
快速冪 龜速乘
今天在牛客遇到一道題華華教月月做數學 我看了一下題,發現是讓求a b p,我一看就知道應該是快速冪,就非常高興的開始寫起來,但是寫完的時候,發現連給的第二個樣例都過不去,才發現,原來爆long long 了。我看了一下題解,又搜了一下網上的資料,發現快速冪的弊端就是容易爆longlong,所以還有一...
快速冪 快速乘
直接求解,需要迴圈b次。思路 將b轉化為二進位制。對應為1的次數的冪保留,只需要將保留的冪的結果進行乘積就是a b。class solution def fast self,a,b b bin b 2 res 1for i in b 1 if i 1 res res a a a return res...
快速乘,快速冪
老是忘記還是寫下來記錄一下 快速乘,和快速冪都是防止爆int,或long long,如果爆longlong可以選擇兩者結合,或者使用 int128 上網搜了還是不懂 例題 include iostream using namespace std int main b b 2 a a a m cout...