杂题

题意

对于一个长度为\(n\)的序列\(A=\{a_i\}\)以及正整数\(m\),定义\(f(A,m)\)\(\sum\limits_{i=1}^n a_ix_i\equiv 0(\text{mod}~m)(\forall i,\text{s.t.}x_i\in[0,m)])\)的解的个数。
给定一个长度为\(n\)的序列\(B\),给定\(M\)
\(w_m=\sum\limits_{S\neq \emptyset,S\subseteq B}f(S,m)\),求\(i\in[1,M]\)所有的\(w_i\)\(w_m\)对质数取模)。
\(1\le n,b_i,M\le 10^5\)

做法

引理\(f(A,m)=gcd(A,m)\cdot m^{|A|-1}\)

证明:
显然,如果我们能证明\(f(A,p^k)=gcd(A,p^k)\cdot (p^k)^{|A|-1}\),则引理得证。
\(b_i=a_i\% p^k\),假设\(b_i=c_ip^{q_i}((c_i,p)=1)\)
由于\(c_i\)有逆元,\(f(A,p^k)\)\(\sum\limits_{i=1}^n p_i^{q_i}x_i\equiv 0(\text{mod}~p^k)(\forall i,\text{s.t.}x_i\in[0,p^k)])\)的解的个数。
一般的,令\(q_1=min\{q_i\}\)
假设\(x_i(i\neq 0)\)为常数,\(p^{q_1}x_1+\sum\limits_{i=2}^n p^{q_i}x_i\equiv 0(mod~p^k)\)有解的充要条件为:\(\sum\limits_{i=2}^n p^{q_i}x_i\)\((p^k,p^{q_1})=p^{q_1}\)的倍数。
由于\(q_1=min\{q_i\}\),显然是有解的。且\(x_1\)的解的个数为\((p^k,p^{q_1})=p^{q_1}\)
那么\(f(A,p^k)=p^{q_1}\cdot (p^k)^{|A|-1}=gcd(A,m)\cdot m^{|A|-1}\)

\[\begin{aligned} w_m&=\sum\limits_{S\neq \empty ,S\subseteq B} gcd(S,m)\cdot m^{|S|-1}\\ &=\sum\limits_{d|m}\sum\limits_{S\neq \empty ,S\subseteq B} [gcd(S,m)=d]d\cdot m^{|S|-1}\\ &=\sum\limits_{d|m}\sum\limits_{S\neq \empty ,S\subseteq B} [gcd(S,m)=d](\sum\limits_{u|d}\phi(u))\cdot m^{|S|-1}\\ &=\sum\limits_{u|m}\phi(u) \sum\limits_{u|d}\sum\limits_{S\neq \empty ,S\subseteq B} [gcd(S,m)=d]\cdot m^{|S|-1}\\ &=\sum\limits_{u|m}\phi(u) \sum\limits_{S\neq \empty ,S\subseteq B} [u|gcd(S,m)]\cdot m^{|S|-1}\\ \end{aligned}\]

\(C_i\)为整除\(i\)的个数。

\[\begin{aligned} &=\sum\limits_{u|m}\phi(u) \sum\limits_{S\neq \empty ,S\subseteq B} [u|gcd(S,m)]\cdot m^{|S|-1}\\ &=\sum\limits_{u|m}\phi(u) \frac{1}{m}(m+1)^{C_u}\\ \end{aligned}\]

于是,此题可以在\(O(\sum\limits_{i=1}^n \sigma(b_i)+m\text{ln}m)\)复杂度内解决。

posted @ 2021-03-13 10:41  Grice  阅读(67)  评论(0编辑  收藏  举报