快速冪(新手勿噴)

2021-10-06 21:14:45 字數 630 閱讀 1348

計算乘法很簡單,但是如果資料規模過大就會超時了,所以就有了快速冪這個演算法。

原理:如果b是奇數,就有a^b=a * a^(b-1)

如果b是偶數,就有ab=a(b/2) *a^(b/2)

舉個例子 2^4

2^4 = 2^2 * 2^2

2^2 = 2^1 * 2^1

2^1 = 2 = 2^0

2^0 = 1

(例子借鑑了演算法筆記)

時間複雜度o(logn)

題目給出三個整數a,b,ma,b,ma,b,m,求ab%ma^b % mab%m的值

輸入三個整數a,b,ma,b,ma,b,m。

輸出乙個整數,表示ab%ma^b %mab%m的值。

【資料規模】

a,b,m≤109a,b,m≤10^9a,b,m≤109。

**:

#include

//萬能標頭檔案

using

namespace std;

typedef

long

long ll;

//巨集定義

ll q_pow

(ll x,ll n,ll m)

intmain()

線性結構的C實現之鍊錶(面向新手,大佬勿噴)

對於線性結構還有一種實現模式,就是鍊錶,相比於陣列,鍊錶的優勢在於,他理論上沒有最大的規模,不像陣列需要規定乙個明確的最大值。而且插入刪除操作相比於陣列來講比較容易,但是實現起來比較花裡胡哨,需要一段時間去訓練,實現原理還是很簡單的。注意 鍊錶的操作建議同學畫圖理解。我們是這樣建立鍊錶的,首先是建立...

新手上手vue 第乙個Hello(大佬勿噴)

哈哈,今天分享下,我的第乙個vue專案。首先當我們搭建好環境 nodejs什麼的 程式設計工具也配置好,我是用vscode。當我們建立好vue專案後就有會出現這幾個資料夾。一般打包vue的話也就大概打包這幾個,不過node modules這個太大不建議打包。一般都是在其他資料夾拉好後,直接在終端 n...

排序演算法 快排 (我小白 勿噴)

排序演算法中,桶排o n 的時間複雜度算很快的了,但是當資料很大的時候,空間複雜度很大。那麼我們熟悉的冒泡呢?時間複雜度最壞的情況o n 2 空間複雜度才o 1 刷題時排序資料是 10 5 的時候你就會t了 所以這個時候 qsort 就出來了。假設 我們現在有 一組資料 6 1 2 7 9 3 4 ...