快速冪 龜速乘

2021-09-30 01:42:09 字數 623 閱讀 4801

快速冪

利用了二進位制的特性,話說二進位制真有用。。(還有個矩陣快速冪)

時間複雜度: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...