模板 快速冪

2021-10-08 08:29:23 字數 783 閱讀 8016

題源:

每進行一步運算時都要把得到的答案對c取模。

a b c ans 都要定義成 long long 型變數。

不要認為運算過程中對答案取模就夠了,再輸出答案的時候不要忘記把最終的答案再對c取一次模。

#include #define numm ch - 48

#define pd putchar(' ')

#define pn putchar('\n')

#define pb push_back

#define fi first

#define se second

#define fre1 freopen("1.txt", "r", stdin)

#define fre2 freopen("2.txt", "w", stdout)

typedef long long int ll;

typedef long long int ll;

using namespace std;

templatevoid read(t &res)

templatevoid write(t x)

//static auto _ = () ();

//#pragma gcc optimize(3,"ofast","inline")

//int main()

a = a * a % c;

b = b >> 1;

}write(ans % c);

return 0;

}

模板 快速冪

1.萌新的話 快速冪主要是用來解決一些超時間複雜度的冪運算。其主要思想是根據乙個結論 2 n 4 n 2 這樣原本暴力的o n 演算法優化為了o logn 的演算法了。時間複雜度 2.include include include include include using namespace st...

快速冪(模板)

對於任何乙個整數的模冪運算 a b c 對於b我們可以拆成二進位制的形式 b b0 b1 2 b2 2 2 bn 2 n 這裡我們的b0對應的是b二進位制的第一位 那麼我們的a b運算就可以拆解成 a b0 a b1 2 a bn 2 n 對於b來說,二進位制位不是0就是1,那麼對於bx為0的項我們...

快速冪(模板)

快速冪原理就是將emm 比如求n的m次方nm那麼就將m轉化為2進製數 對每一位進行判斷,如果當前位數為1就進行一次乘法,同時每次判斷後的乘數為n的當前判斷的m的位數的冪。假設當前已經判斷到2進製下m的第k位位數上為一那麼乘上nk。好懂 include define ll long long usin...