一道非常厉害的题目。
题意
求:
\[\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-j}{q-1\choose k}-\sum_{i=t+1}^{r}c(r,i)(-1)^{q-j+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\),其他 \(l\) 的结果均为 \(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)\) 的线性做法。
标签:1285,sum,Stirling,overline,choose,mod,aligned,QOJ,equiv From: https://www.cnblogs.com/imcaigou/p/18233770