刷題 洛谷 P3807 模板 盧卡斯定理

2022-05-26 14:24:11 字數 1284 閱讀 5329

這是一道模板題。

給定\(n,m,p( 1\le n,m,p\le 10^5)\)

求 \(c_^\ mod\ p\)

保證 \(p\) 為prime

\(c\) 表示組合數。

乙個測試點內包含多組資料。

輸入格式:

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

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

輸出格式:

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

輸入樣例#1:

21 2 5

2 1 5

輸出樣例#1:33

盧卡斯定理的模板題

\[\bigg(\begin m \\ n \end\bigg) \mod p=\bigg(\begin m/p \\ n/p \end\bigg)\bigg(\begin m\mod p \\ n~\mod p \end\bigg) \mod p

\]具體應用就是預處理模數的fac和inv,然後兩個組合數中後面那個肯定可以用預處理的算,前面那個如果 \(n\) 或 \(m\) 還是比模數大,就一直遞迴下去。注意,當 \(n\) 小於 \(m\) 時,返回0

證明看這裡

那這道題就裸啦

#include#define ui unsigned int

#define ll long long

#define db double

#define ld long double

#define ull unsigned long long

const int maxp=100000+10;

ll fac[maxp],inv[maxp];

templateinline void read(t &x)

templateinline void write(t x,char ch='\0')

templateinline void chkmin(t &x,t y)

templateinline t min(t x,t y)

inline ll qexp(ll a,ll b,int n)

return res;

}inline void init(int p)

inline ll c(ll n,ll m,int p)

int main()

return 0;

}

洛谷 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 盧卡斯定理

題目背景 這是一道模板題。題目描述 給定n,m,p 1 le n,m,p le 10 51 n,m,p 105 求 c mod pc n mm mod p 保證p為prime c表示組合數。乙個測試點內包含多組資料。輸入輸出格式 輸入格式 第一行乙個整數t t le 10t 10 表示資料組數 第二...