P4345 超能粒子炮·改

发布时间 2023-10-09 18:47:40作者: zzafanti

洛谷题面传送门

description

\(\sum\limits_{i=0}^k \dbinom{n}{i} \bmod 2333\)

2333 是质数。

\(10^5\) 测,\(n,k\leq 10^{18}\)

solution

由 Lucas 定理,\(\dbinom{n}{m}\equiv \dbinom{n\bmod p}{m\bmod p}\dbinom{\lfloor n/p\rfloor}{\lfloor m/p\rfloor} \pmod p\),要求 \(p\) 是质数。

因此我们可以按数位来 dp。

\(pos_i(n)\) 表示 \(n\) 在 2333 进制下从小到大第 \(i\) 位的数值。

\(f_i\) 表示 \(\sum\limits_{j=0}^{2333^{i}-1}\dbinom{n}{i}\)

则有转移式:

  • \(f_0=1\)
  • \(f_m=\sum\limits_{i=0}^{2333-1}\dbinom{pos_m(n)}{i}\times f_{m-1}\)。(即枚举最高位是多少)。

\(h_i\) 表示对于 \((n,k\bmod 2333^i)\) 的答案,则有

  • \(h_0=\sum\limits_{i=0}^{k\bmod 2333} \dbinom{n\bmod 2333}{i}\)

  • \(h_i=\dbinom{pos_i(n)}{pos_i(k)}h_{i-1}+\sum\limits_{j=0}^{pos_i(k)-1}\dbinom{pos_i(n)}{j}\times f_{i-1}\)

预处理组合数及其每行的前缀和,每次询问 dp 后回答即可。

时间复杂度 \(O(p^2+T\log_{p} n)\),其中 \(p=2333\)

code

洛谷 - 评测记录 R128430539