QOJ #1285.Stirling Number

一道非常厉害的题目。

题意

求无标号第一类斯特林数第 \(n\) 行一段区间之和。

相当于求:

\[\sum_{i=0}^{m}c(n,i)\mod p \]

其中 \(c(n,i)\) 为无标号第一类斯特林数,且有 \(n,m\le 10^{18},p\le 10^6\)

Sol

考虑一个性质:

\[x^{\overline p}\equiv x^p-x \mod p \]

证明比较简单,考虑费马小定理,\(x^p\equiv x\mod p\)。而 \(x,x+1,\cdots,x+p-1\) 中一定有一个数是 \(p\) 的倍数,因此两边模 \(p\) 都等于 \(0\)

因此对于一个比较大的数 \(n\),令 \(n=pq+r,r<p\)

\[\begin{aligned} x^{\overline n}&\equiv x(x+1)\cdots(x+n-1) \\ &\equiv \prod_{l=0}^{q-1}(x+pl)^{\overline p}(x+pq)^{\overline r} \\ &\equiv (x^p-x)^qx^{\overline r} \\ &\equiv x^q(x^{p-1}-1)^qx^{\overline r} \mod p \end{aligned} \]

\(k-q=a(p-1)+b,0<b<p\),根据 \(c(n,k)\) 的定义而有:

\[\begin{aligned} c(n,k)&\equiv [x^k]x^{\overline n} \\ &\equiv [x^{k-q}](x^{p-1}-1)^qx^{\overline r} \\ &\equiv [x^{k-q}](\sum_{l=0}^{q} (-1)^{q-l}{q\choose l}x^{l(p-1)})(\sum_{l=0}^{r}c(r,l)x^l) \\ &\equiv (-1)^{q-a}{q\choose a}c(r,b) \mod p \end{aligned} \]

因此,令 \(m-q=k(p-1)+t,0<t<p\), 则有:

\[\begin{aligned} \sum_{l=0}^m c(n,l)\equiv& \sum_{i=0}^{t}c(r,i)\sum_{j=0}^k(-1)^{q-j}{q\choose j} \\ &+\sum_{i=t+1}^rc(r,i)\sum_{j=0}^{k-1}(-1)^{q-j}{q\choose j} \mod p \end{aligned} \]

考虑一个公式:

\[\sum_{j=0}^k(-1)^{j}{q\choose j}=(-1)^k{q-1\choose j} \]

这个可以用归纳法证明。

因此有:

\[\begin{aligned} \sum_{l=0}^mc(n,l)\equiv& \sum_{i=0}^t c(r,i) (-1)^{q-k}{q-1\choose k}+\sum_{i=t+1}^{r}c(r,i)(-1)^{q-k+1}{q-1\choose k-1} \\ \equiv& (-1)^{q-k}\left({q\choose k}\sum_{i=0}^t c(r,i) - {q - 1\choose k - 1}\sum_{i=0}^r c(r,i) \right) \\ \equiv& (-1)^{q-k}\left({q\choose k}\sum_{i=0}^t c(r,i) - {q - 1\choose k - 1}r! \right) \mod p \end{aligned} \]

随后问题在于,对于任意小质数模数 \(p\) 和任意 \(r\)\(\sum_{i=0}^tc(r,i)\)

这里可以用任意模数 NTT,但是我加了大佬 NaCly_Fish 的 qq 好友特地问了这个问题,实际上有严格线性的方法。

考虑对于一个多项式 \(f(x)\) 以及 \(p\) 的原根 \(g\),知道 \(f(1),f(g),\cdots,f(g^{p-2})\) 的值,我们可以在严格线性的时间复杂度内求出 \(f(x)\)\(t\) 项系数之和。

关键技巧在于只有 \(k=0\) 满足 \(g^k+g^{2k}+\cdots+g^{(p-1)k}\equiv-1\mod p\),其他 \(k>0\) 的结果均为 \(0\)。因此具体地如下:

\[\begin{aligned} \sum_{l=0}^t f_t\equiv& - \sum_{l=0}^{p-2}\left( f(g^l) \sum_{j=0}^m g^{-lj} \right) \\ \equiv& -(m+1)f(1)-\sum_{l=1}^{p-2}f(g^l) \frac{g^{-l(m+1)}-1}{g^{-l}-1} \mod p \end{aligned} \]

至此,将这个公式套回上式,得到 \(O(p)\) 的线性做法。

Submission #431472 - QOJ.ac

posted @ 2024-06-05 20:48  Imcaigou  阅读(9)  评论(0编辑  收藏  举报