CF1436F Sum Over Subsets

题意

给出一个可重集 SS,值为 ii 的元素有 freqifreq_i 个
有两个集合 A,BA,B 满足

  • B⊂A⊆SB\subset A\subseteq S
  • ∣B∣=∣A∣−1|B|=|A|-1
  • gcd⁡x∈Ax=1\gcd\limits_{x\in A}x=1

这两个集合的权值 w(A,B)=∑x∈Ax∑y∈Byw(A,B)=\sum\limits_{x\in A}x\sum\limits_{y\in B}y
求所有可能的集合对 (A,B)(A, B) 的权值之和

1≤ai≤105,freqi≤1091\le a_i\le10^5,freq_i\le10^9

题解

考虑令 fif_i 表示满足 gcd⁡x∈Ax=i\gcd\limits_{x\in A}x=i 时的答案,gig_i 表示满足 i∣gcd⁡x∈Axi\mid\gcd_{x\in A}x 时的答案
有 gi=∑i∣jfjg_i=\sum\limits_{i\mid j}f_j
求出 gg 以后,可以莫比乌斯反演得到 ff
即 fi=∑j∣iμ(j)×gjf_i=\sum\limits_{j\mid i}\mu(j)\times g_j

所以答案 Ans=∑1≤iμ(i)×gi\text{Ans}=\sum\limits_{1\le i}\mu(i)\times g_i

接下来考虑求 gig_i

先构造集合 S′={x∣x∈S,i∣x}S'=\{x|x\in S,i\mid x\} 有 gi=∑B⊂A⊆S′,∣B∣=∣A∣−1w(A,B)=∑B⊂A⊆S′,∣B∣=∣A∣−1∑x∈A∑y∈Bx×y \begin{aligned} g_i&=\sum_{B\subset A\subseteq S',|B|=|A|-1}w(A,B)\\ &=\sum_{B\subset A\subseteq S',|B|=|A|-1}\sum_{x\in A}\sum_{y\in B}x\times y \end{aligned}

考虑每一对 (x∈A,y∈B)(x\in A, y\in B) 对 gig_i 的贡献

在集合 AA 中但不再集合 BB 中的元素称为特殊元素,在集合 AA 和 BB 中的称为普通元素
分两种情况讨论:

  • x,yx, y 是同一个元素
    显然 xx 是普通元素
    那么我们从剩下 ∣S′∣−1|S'|-1 个元素中选出一个特殊元素,再从剩下的 ∣S′∣−2|S'|-2 个元素中任选若干个作为普通元素
    有 (∣S′∣−1)×2∣S′∣−2(|S'|-1)\times 2^{|S'|-2} 种方案,产生 (∣S′∣−1)×2∣S′∣−2×x2(|S'|-1)\times 2^{|S'|-2}\times x^2 的贡献
  • x,yx, y 是不同的元素,注意是元素不同,不是值不同
    显然 yy 是普通元素
    若 xx 是普通元素,类似的有 (∣S′∣−2)×2∣S′∣−3(|S'|-2)\times 2^{|S'|-3} 种方案
    若 xx 是特殊元素,在剩下的 ∣S′∣−2|S'|-2 个元素中任选作为普通元素,有 s∣S′∣−2s^{|S'|-2} 种方案
    共 (∣S′∣−2)×2∣S′∣−3+s∣S′−2∣(|S'|-2)\times 2^{|S'|-3}+s^{|S'-2|} 种方案,产生贡献 [(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]×x×y[(|S'|-2)\times 2^{|S'|-3}+s^{|S'|-2}]\times x\times y

回到本题,由于 freqfreq 特别大,把值相同的元素放在一起考虑
相同值 xx 之间的贡献有两种

  • 同元素
    乘上值为 xx 的元素个数
    有贡献 (∣S′∣−1)×2∣S′∣−2×x2×freqx(|S'|-1)\times 2^{|S'|-2}\times x^2\times freq_x
  • 不同元素
    有贡献 [(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]×x2×freqx×(freqx−1)\left[(|S'|-2)\times 2^{|S'|-3}+s^{|S'|-2}\right]\times x^2\times freq_x\times (freq_x-1)

不同的值 x,yx, y 之间的贡献
类似的 [(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]x×y×freqx×freqy\left[(|S'|-2)\times 2^{|S'|-3}+s^{|S'|-2}\right]x\times y\times freq_x\times freq_y

∑x,y∈S′,x≠y[(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]×x×y×freqx×freqy=[(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2][(∑x∈S′x×freqx)2−∑x∈S′(x×freqx)2]\begin{aligned}&\sum_{x,y\in S',x\not =y}\left[(|S'|-2)\times 2^{|S'|-3}+s^{|S'|-2}\right]\times x\times y\times freq_x\times freq_y\\&=\left[(|S'|-2)\times 2^{|S'|-3}+s^{|S'|-2}\right]\left[(\sum_{x\in S'}x\times freq_x)^2-\sum_{x\in S'}(x\times freq_x)^2\right]\end{aligned}

复杂度为调和级数

代码 codeforces submission 144913462

CF1436F Sum Over Subsets

https://gzezfisher.top/cf1436f/

作者

Fisher Cai

发布于

2022-02-02

更新于

2025-07-22

许可协议

评论

Your browser is out-of-date!

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

×