CF1436F Sum Over Subsets

题意

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

  • BASB\subset A\subseteq S
  • B=A1|B|=|A|-1
  • gcdxAx=1\gcd\limits_{x\in A}x=1

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

1ai105,freqi1091\le a_i\le10^5,freq_i\le10^9

题解

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

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

接下来考虑求 gig_i

先构造集合 S={xxS,ix}S'=\{x|x\in S,i\mid x\}gi=BAS,B=A1w(A,B)=BAS,B=A1xAyBx×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}

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

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

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

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

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

不同的值 x,yx, y 之间的贡献
类似的 [(S2)×2S3+sS2]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,yS,xy[(S2)×2S3+sS2]×x×y×freqx×freqy=[(S2)×2S3+sS2][(xSx×freqx)2xS(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

×