【模板】快速冪/快速乘
快速冪:
inline int ksm(int a,int b,int mod)
{
int ans=1;
a%=mod;
while(b)
{
if(b&1) ans=ksc(ans,a,mod);
b>>=1;
a=ksc(a,a,mod);
}
return ans;
}
快速乘(O(logN)):
inline int ksc(int a,int b,int mod) { int ans=0; a%=mod; while(b) { if(b&1) ans=(ans+a)%mod; b>>=1; a=(a+a)%mod; } return ans; }
快速乘(O(1)):
inline int mul(int a,int b)
{
return (a*b-(int)((long double)a/mod*b)*mod+mod)%mod;
}
相關推薦
【模板】快速冪/快速乘
快速冪: inline int ksm(int a,int b,int mod) { int ans=1; a%=mod; while(b) { if(b&1) ans=ksc(
【模板】(新)快速冪+快速乘
老版快速冪 感覺以前寫的這篇太渣了 貼一個新的 inline ll pow(ll a , ll b , ll p){ ll ans = 1; while(b)
P3390 【模板】矩陣快速冪
說明 快速冪 給定 元素 答案 利用 class 題目 乘法 題目背景 矩陣快速冪 題目描述 給定n*n的矩陣A,求A^k 輸入輸出格式 輸入格式: 第一行,n,k 第2至n+1行,每行n個數,第i+1行第j個數表示矩陣第i行第j列的元素 輸出格式: 輸出A^
洛谷 P3390 【模板】矩陣快速冪
算法 ons int void printf cst getchar show 輸出格式 題目背景 矩陣快速冪 題目描述 給定n*n的矩陣A,求A^k 輸入輸出格式 輸入格式: 第一行,n,k 第2至n+1行,每行n個數,第i+1行第j個數表示矩陣第i行
【模板】快速冪取模
模板 space 變量 pac esp const def class cstring 快速冪取模的模板,要註意所有變量都要開成long long類型的防溢出: #include<cstdio> #include<algorithm>
【模板】矩陣快速冪
oid -c algorithm adg col emc print cstring -o 題目背景 矩陣快速冪 題目描述 給定n*n的矩陣A,求A^k 輸入輸出格式 輸入格式: 第一行,n,k 第2至n+1行,每行n個數,第i+1行第j個數表示矩陣第i行第j列的元素
luogu3390 【模板】矩陣快速冪
tdi ret operator turn clu names his == 等於 #include <iostream> #include <cstdio> using namespace std; typedef long long ll; ll
模板【洛谷P3390】 【模板】矩陣快速冪
i++ pac get lld getchar () lin line its P3390 【模板】矩陣快速冪 題目描述 給定n*n的矩陣A,求A^k 矩陣A的大小為n×m,B的大小為n×k,設C=A×B 則C_{i,j}=\sum\limits_{k=1}^{n}A_{i
【模板】快速冪+取余
int pre span spa 快速 模板 col 快速冪 result 1 inline int Power(int a, int n, int b) 2 { 3 int result = 1; 4 while(n) 5 { 6
[luogu P3390] 【模板】矩陣快速冪
題目 https://www.luogu.org/problemnew/show/P3390#sub 解題思路 這道題就是矩陣乘法的模板題,注意一下 f
【模板】快速冪||取餘運算。
拿一個樣例說話吧: 2^1=2 2%9=2 2^2=4 4%9=4 2^3=8 8%9=8 2^4=16 16%9=7 2^5=32 32%9=5 2^6=64 64%9=1 2^7=128 128%9=2 通過這個你能發現什麼呢? 自然就是餘數都是有規律的。 是不是讓快速冪變得淺顯易懂了。
洛谷 P1939 【模板】矩陣加速(數列)——————矩陣快速冪(水題)
P1939 【模板】矩陣加速(數列) 題目描述 a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1] (x>3) 求a數列的第n項對1000000007(10^9+7)取餘的值。 輸入輸出格式 輸入格式: 第一行一個整數T,表示詢問個數。
POJ 3696 The Luckiest Number【尤拉函式+快速冪+快速乘】
Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own lucky number L. Now he wants to constr
洛谷 P1939 【模板】矩陣加速(數列):優化遞推式的方法——矩陣快速冪
在大多數情況下,O(n)的效率都是值得驕傲的,然而,有時候並不是,比如如何在一秒鐘內算出一個遞推式的第1e9項,很明顯O(n)不行了。 然而常數級又不太現實,除非你的數學非常好,這題又比較簡單,你推了一個特徵方程的通項公式…… 所以考慮log的做法:矩陣快速冪 如果你還不知
【矩陣快速冪】HDU1575Tr A【模板】
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1575 題目描述: Problem Description A為一個方陣,則Tr A表示A的跡(就是主對角線上各項的和),現要求Tr(A^k)%9973。
LuoguP3390|【模板】矩陣快速冪|板子
目錄 快速冪 板子 矩陣快速冪 Problem 板子 快速冪 板子 long long qpow(long long a,long long b){ long long ans=1,base=a; while(b){
【模板】【數論】快速冪和快速乘法
快速冪 快速冪取模演算法可以在O(log2b)的時間內求出abmodp的值。 運用了二進位制的思想,實質是對b進行二進位制分解。 程式碼: typedef long long LL; LL ksm(int a,int b,int p)//最好不要把函
快速乘【模板】
快速乘:a*a=a+a+a·····+a(a個a相加),O(lgn/lg2)複雜度; 如果a比較大:a=a*a%m =》 a=(a%m)*(a%m)%m 有可能m比較大,最終爆LL,快速乘能
【洛谷】P1226 【模板】快速冪||取餘運算
題目連結 題目描述 輸入b,p,k的值,求b^p mod k的值。其中b,p,k*k為長整型數。 輸入輸出格式 輸入格式: 三個整數b,p,k. 輸出格式: 輸出“b^p mod k=s” s為運算結果 輸入輸出樣例 輸入樣例#1: 複製
洛谷 P1226 【模板】快速冪||取余運算
badge region 輸入輸出 orange ace -c main c代碼 out 題目描述 輸入b,p,k的值,求b^p mod k的值。其中b,p,k*k為長整型數。 輸入輸出格式 輸入格式: 三個整數b,p,k. 輸出格式: 輸出“b^p mod