卢卡斯定理简记

卢卡斯定理

\(p\) 为质数且足够小,可以接受 \(O(p)\) 的时空复杂度,同时 \(n,m\) 值域过大以至于无法线性预处理时,卢卡斯定理可以求解 \(\binom{n}{m}\bmod p\)

\[\binom{n}{m}\equiv\binom{\lfloor\frac{n}{p}\rfloor}{\lfloor\frac{m}{p}\rfloor}\binom{n\bmod p}{m\bmod p}\pmod p \]

证明什么的可以参考 OI-wiki 之类的,用途不大所以就不写了。

预处理 \(O(p)\),单次查询 \(O(\log n)\)

ll C(ll n,ll m){
	if(n<m)return 0;
	if(n<p&&m<p)return fc[n]*iv[m]%p*iv[n-m]%p;
	return C(n/p,m/p)*C(n%p,m%p)%p;
}
posted @ 2026-01-02 13:26  LastKismet  阅读(2)  评论(0)    收藏  举报