數論 盧卡斯定理模板 洛谷P3807

2022-05-25 03:51:11 字數 867 閱讀 9877

【題目】

【輸入格式】

第一行乙個整數t(t\le 10t≤10),表示資料組數

第二行開始共t行,每行三個數n m p,意義如上

【輸出格式】

共t行,每行乙個整數表示答案。

【輸入樣例】

21 2 5

2 1 5

【輸出樣例】33

emmmm模板題還是不用分析了吧

盧卡斯定理解決的就是組合數c(n,m)中m,n太大的情況

根據定理的內容,c(n,m)=c(n/p,m/p)*c(n%p,m%p)其中p是模數

我們只需要不斷遞迴求解c(n/p,m/p)就可以啦

因為同餘方程不滿足兩邊同時除乙個數,那麼只能將除乙個數轉化成乘這個數在模數p意義下的逆元

求逆元的方式有很多種,在我的另乙個部落格裡面會有詳細介紹φ(>ω<*) 

#include#define ll long long

#define l i64d

#define maxn 100005

using

namespace

std;

ll fac[

2*maxn];

intp,t;

void init(int n,int

m)//預處理階乘

ll quickpow(ll x,ll y)

return ans%p;

}ll c(ll m,ll n)

ll lucas(ll m,ll n)

intmain()

return0;

}/*21 2 5

2 1 5

*/

完結撒花✿✿ヽ(°▽°)ノ✿

洛谷 P3807 模板 盧卡斯定理

洛谷智推模板題,qwq,還是太弱啦,組合數基礎模板題還沒做過。給定n,m,p 1 le n,m,p le 10 5 求 c mod p lucas 定理 c c times c mod p 相當於把 n,m 寫成 p 進製數 a 1,a 2 dotso a k b 1,b 2 dotso b k c...

洛谷P3807 模板 盧卡斯定理

這是一道模板題。給定n,m,p 1 le n,m,p le 10 51 n,m,p 10 5 求 c mod pc n m m modp 保證p為prime c表示組合數。乙個測試點內包含多組資料。輸入格式 第一行乙個整數t t le 10t 10 表示資料組數 第二行開始共t行,每行三個數n m ...

洛谷P3807 模板 盧卡斯定理 Lucas

求cn mmm odpc n mm mod p盧卡斯定理 若p p為質數,則必有cn m c n p m p cn modp mmod p mo dp c nm c n p m p cnm odpm modp mo dp 所以如果n,m n,m很大,而p p相對較小的情況下,我們就可以利用盧卡斯定理...