XSY4363

有生成函数 f(x,y)=0i<n(1+xiy)f(x,y)=\prod_{0\le i<n}(1+x^iy) Ans=[ym]imodn=k[xi]f(x,y)=[ym]1n0i<nf(ωni,y)ωnik单位根反演=[ym]1n0i<n(0j<n1+y×ωnij)ωnik \begin{aligned} \text{Ans}=&[y^m]\sum_{i\bmod n = k}[x^i]f(x,y) &\\ =&[y^m]\frac{1}{n}\sum_{0\le i<n}f(\omega_n^i,y)\omega_n^{-ik} &\text{单位根反演}\\ =&[y^m]\frac{1}{n}\sum_{0\le i<n}\left(\prod_{0\le j<n}1+y\times\omega_n^{ij}\right)\omega_n^{-ik} & \end{aligned}

定理1:ωni=ωn(n,i)\omega_n^i=\omega_{\frac{n}{(n, i)}}

[object Promise]

推论:ωnkik=ωknk(n,i)=ωn(n,i)=ωni\omega_{nk}^{ik}=\omega_{\frac{kn}{k(n,i)}}=\omega_{\frac{n}{(n,i)}}=\omega_n^i

Ans=[ym]1n0i<n(0j<n1+y×ωn(n,i)j)ωnik定理1=[ym]1n0i<n(0j<n(n,i)1+y×ωn(n,i)j)(n,i)ωnik=[ym]1ndn(0j<nd1+y×ωndj)d0i<n(n,i)=dωnik \begin{aligned} \text{Ans}=&[y^m]\frac{1}{n}\sum_{0\le i<n}\left(\prod_{0\le j<n}1+y\times\omega_{\frac{n}{(n,i)}}^j\right)\omega_n^{-ik} &\text{定理1}\\ =&[y^m]\frac{1}{n}\sum_{0\le i<n}\left(\prod_{0\le j<\frac{n}{(n,i)}}1+y\times\omega_{\frac{n}{(n,i)}}^j\right)^{(n,i)}\omega_n^{-ik} &\\ =&[y^m]\frac{1}{n}\sum_{d\mid n}\left(\prod_{0\le j<\frac{n}{d}}1+y\times\omega_{\frac{n}{d}}^j\right)^{d}\sum_{\begin{aligned}0\le i<n\\(n,i)=d\end{aligned}}\omega_n^{-ik} &\\ \end{aligned}

定理2:0i<nx+y×ωni=xn(y)n\prod\limits_{0\le i<n}x+y\times\omega_n^i=x^n-(-y)^n

[object Promise]

Ans=[ym]1ndn(1(y)nd)d0i<n(n,i)=dωnik定理2=[ym]1ndn(1(y)d)nd0i<n(n,i)=ndωnik=1nd(n,m)(1)md(mdnd)0i<n(n,i)=ndωnik二项式定理=1nd(n,m)(1)md(mdnd)0i<d(d,i)=1ωdik推论 \begin{aligned} \text{Ans}=&[y^m]\frac{1}{n}\sum_{d\mid n}\left(1-(-y)^{\frac{n}{d}}\right)^{d}\sum_{\begin{aligned}0\le i<n\\(n,i)=d\end{aligned}}\omega_n^{-ik} &\text{定理2}\\ =&[y^m]\frac{1}{n}\sum_{d\mid n}\left(1-(-y)^d\right)^{\frac{n}{d}}\sum_{\begin{aligned}0\le i<n\\(n,i)=\frac{n}{d}\end{aligned}}\omega_n^{-ik} &\\ =&\frac{1}{n}\sum_{d\mid (n,m)}(-1)^{\frac{m}{d}}\begin{pmatrix}\frac{m}{d}\\\frac{n}{d}\end{pmatrix}\sum_{\begin{aligned}0\le i<n\\(n,i)=\frac{n}{d}\end{aligned}}\omega_n^{-ik} &\text{二项式定理}\\ =&\frac{1}{n}\sum_{d\mid (n,m)}(-1)^{\frac{m}{d}}\begin{pmatrix}\frac{m}{d}\\\frac{n}{d}\end{pmatrix}\sum_{\begin{aligned}0\le i<d\\(d,i)=1\end{aligned}}\omega_d^{-ik} &\text{推论} \end{aligned}

0i<d(d,i)=1ωdik=0i<dωdikx(d,i)μ(x)=xdμ(x)0i<dxωdixk=xdμ(x)0i<dxωdxik推论=xdμ(x)×dx[dxk]=x(d,k)μ(dx)×x \begin{aligned} \sum_{0\le i<d\\(d,i)=1}\omega_d^{-ik}=& \sum_{0\le i<d}\omega_d^{-ik}\sum_{x\mid (d,i)}\mu(x) &\\ =&\sum_{x\mid d}\mu(x)\sum_{0\le i<\frac{d}{x}}\omega_d^{-ixk} &\\ =&\sum_{x\mid d}\mu(x)\sum_{0\le i<\frac{d}{x}}\omega_{\frac{d}{x}}^{-ik} &\text{推论}\\ =&\sum_{x\mid d}\mu(x)\times \frac{d}{x}[\frac{d}{x}\mid k] &\\ =&\sum_{x\mid (d,k)}\mu(\frac{d}{x})\times x &\\ \end{aligned}

Ans=1nd(n,m)(1)md(mdnd)x(d,k)μ(dx)×x \text{Ans}=\frac{1}{n}\sum_{d\mid (n,m)}(-1)^{\frac{m}{d}}\begin{pmatrix}\frac{m}{d}\\\frac{n}{d}\end{pmatrix}\sum_{x\mid (d,k)}\mu(\frac{d}{x})\times x

如果不考虑大组合数的话可以做到 O(σ0(n))\mathcal{O}(\sigma_0(n)) 组合数分块打阶乘表即可

作者

Fisher Cai

发布于

2022-03-20

更新于

2025-07-22

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×