令总和为 \(s\),则合法当且仅当存在 \(x\mid 2x\equiv s\pmod k\)
先考虑 \(2\nmid k\) 的情况,此时 \(x\) 和 \(s\) 一一对应,枚举 \(x\),令 \(f_i\) 表示含有至少 \(i\) 个 \(x\) 的数量,\(g_i\) 表示含有恰好 \(i\) 个 \(x\) 的数量,则
\[f_i=\binom ni k^{n-i-1}\;(1\le i<n)\\
f_n=[xn\equiv s\pmod k]
\]
\[f_i=\sum_{j=i}^n \binom jig_j
\]
因此
\[g_i=\sum_{j=i}^n (-1)^{i-j} \binom ji f_j
\]
答案为
\[\begin{aligned}
\sum_{i=1}^n g_i=&\sum_{i=1}^n \sum_{j=i}^n (-1)^{i-j} \binom ji f_j\\
=&\sum_{i=1}^{n-1} \sum_{j=i}^{n-1} (-1)^{i-j} \binom ji f_j+\sum_{i=1}^n(-1)^{i-n} \binom ni f_n\\
=&\sum_{i=1}^{n-1} \sum_{j=i}^{n-1} (-1)^{i-j} \binom ji \binom nj k^{n-j-1} +\sum_{i=1}^n(-1)^{i-n} \binom ni [xn\equiv s\pmod k]\\
\end{aligned}
\]
前面部分
\[\begin{aligned}
&\sum_{i=1}^{n-1} \sum_{j=i}^{n-1} (-1)^{i-j} \binom ji \binom nj k^{n-j-1}\\
=&\sum_{j=1}^{n-1}\binom njk^{n-j-1} \sum_{i=1}^j (-1)^{i-j} \binom ji\\
=&\sum_{j=1}^{n-1}\binom njk^{n-j-1} \left( \sum_{i=0}^j (-1)^{i-j} \binom ji-(-1)^{-j}\binom j0\right)\\
=&\sum_{j=1}^{n-1}\binom njk^{n-j-1} \left( (1-1)^j+(-1)^{j+1}\right)\\
=&\sum_{j=1}^{n-1}\binom njk^{n-j-1}(-1)^{j+1}\\
=&-\frac1k\sum_{j=1}^{n-1}\binom njk^{n-j}(-1)^j\\
=&-\frac1k\left(\sum_{j=0}^{n}\binom njk^{n-j}(-1)^j-\binom n0k^{n-0}(-1)^0-\binom nnk^{n-n}(-1)^n\right)\\
=&-\frac1k((k-1)^{n}-k^{n}-(-1)^n)\\
=&\frac1k(k^n-(-1)^n-(k-1)^n)\\
\end{aligned}
\]
\(k\) 个 \(x\) 的总贡献为 \(k\cdot \frac1k(k^n-(-1)^n-(k-1)^n)=k^n-(-1)^n-(k-1)^n\)
后面部分
\[\begin{aligned}
&\sum_{i=1}^n(-1)^{i-n} \binom ni [xn\equiv s\pmod k]\\
=&[xn\equiv s\pmod k]\left(\sum_{i=0}^n(-1)^{i-n} \binom ni -(-1)^{-n}\right)\\
=&[xn\equiv s\pmod k](-1)^{n+1}\\
\end{aligned}
\]
\(k\) 个 \(x\) 的总贡献为
\[\begin{aligned}
&\sum_{x=0}^{k-1}[xn\equiv 2x\pmod k](-1)^{n+1}\\
=&(-1)^{n+1}\sum_{x=0}^{k-1}[(n-2)x\equiv 0\pmod k]\\
=&(-1)^{n+1}\gcd(n-2,k)\\
\end{aligned}
\]
综上,\(2\nmid k\) 时答案为 \(k^n-(-1)^n-(k-1)^n+(-1)^{n+1}\gcd(n-2,k)\),时间复杂度 \(O(\log n)\)
然后考虑 \(2\mid k\) 的情况,此时每个偶数 \(s\) 对应两个 \(x\),奇数 \(s\) 无解,因此 \(f_i=\binom ni k^{n-i-1}2^i\;(1\le i<n,2\mid s)\)
类似 \(2\nmid k\) 的情况,可得 \(2\mid s\) 时总贡献为 \(\frac1k(k^n-(-2)^n-(k-2)^n)\),共 \(\frac k2\) 个 \(s\) 产生贡献,因此这部分总贡献为 \(\frac12(k^n-(-2)^n-(k-2)^n)\)
然后考虑 \(f_n\) 的贡献,显然等于 \((-1)^{n+1}f_n\),因此考虑如何计算 \(f_n\)
显然
\[\begin{aligned}
f_n=&\sum_{i=0}^n \left[i\cdot \frac s2+(n-i)\cdot \frac{s+k}2\equiv s\pmod k\right]\binom ni\\
=&\sum_{i=0}^n \left[i\cdot \frac k2\equiv s-n\cdot \frac{s+k}2\pmod k\right]\binom ni\\
=&\left[s-n\cdot \frac{s+k}2\equiv 0\pmod k\right]\sum_{0\le i\le n, 2\mid i} \binom ni+\left[s-n\cdot \frac{s+k}2\equiv \frac k2\pmod k\right]\sum_{0\le i\le n, 2\nmid i} \binom ni\\
\end{aligned}
\]
即 \(s-n\cdot \frac{s+k}2\equiv 0\pmod k\) 时值为 \(\sum_{0\le i\le n, 2\mid i} \binom ni\),\(s-n\cdot \frac{s+k}2\equiv \frac k2\pmod k\) 时值为 \(\sum_{0\le i\le n, 2\nmid i} \binom ni\)
而 \(\sum_{0\le i\le n, 2\mid i} \binom ni=\sum_{0\le i\le n, 2\nmid i} \binom ni=2^{n-1}\),因此 \(f_n=[s-n\cdot \frac{s+k}2\equiv 0\pmod{\frac k2}]2^{n-1}\),所有 \(f_n\) 的总贡献为
\[\sum_{s=0}^{k-1}(-1)^{n+1}\left[s-n\cdot \frac{s+k}2\equiv 0\pmod{\frac k2}\right]2^{n-1}=(-2)^{n-1}\sum_{s=0}^{k-1}\left[s-n\cdot \frac{s+k}2\equiv 0\pmod{\frac k2}\right]
\]
考虑如何计算 \(\sum_{s=0}^{k-1}\left[s-n\cdot \frac{s+k}2\equiv 0\pmod{\frac k2}\right]\)
由于 \(\left[s-n\cdot \frac{s+k}2\equiv 0\pmod{\frac k2}\right]=\left[s-n\cdot \frac{s}2\equiv 0\pmod{\frac k2}\right]=\left[s\left(\frac n2-1\right)\equiv 0\pmod{\frac k2}\right]\),因此合法的 \(s\) 的数量为 \(\gcd(\frac n2-1,\frac k2)\)
综上,\(2\mid k\) 时答案为 \(\frac12(k^n-(-2)^n-(k-2)^n)+(-2)^{n-1}\gcd(\frac n2-1,\frac k2)\)
总时间复杂度 \(O(\log n)\)
代码
参考
答案为 \(\lceil\log_m \sum_{i=1}^n m^{a_i}\rceil\),\(\text{ODT}\) 维护即可,时间复杂度 \(O(q\log n)\)
代码
参考