题意
给出一个可重集
S,值为
i
的元素有
freqi
个
有两个集合
A,B
满足
- B⊂A⊆S
- ∣B∣=∣A∣−1
- x∈Agcdx=1
这两个集合的权值
w(A,B)=x∈A∑xy∈B∑y
求所有可能的集合对
(A,B)
的权值之和
1≤ai≤105,freqi≤109
题解
考虑令
fi
表示满足
x∈Agcdx=i
时的答案,gi
表示满足
i∣gcdx∈Ax
时的答案
有
gi=i∣j∑fj
求出
g
以后,可以莫比乌斯反演得到
f
即
fi=j∣i∑μ(j)×gj
所以答案
Ans=1≤i∑μ(i)×gi
接下来考虑求
gi
先构造集合
S′={x∣x∈S,i∣x}
有
gi=B⊂A⊆S′,∣B∣=∣A∣−1∑w(A,B)=B⊂A⊆S′,∣B∣=∣A∣−1∑x∈A∑y∈B∑x×y
考虑每一对
(x∈A,y∈B)
对
gi
的贡献
在集合
A
中但不再集合
B
中的元素称为特殊元素,在集合
A
和
B
中的称为普通元素
分两种情况讨论:
- x,y
是同一个元素
显然
x
是普通元素
那么我们从剩下
∣S′∣−1
个元素中选出一个特殊元素,再从剩下的
∣S′∣−2
个元素中任选若干个作为普通元素
有
(∣S′∣−1)×2∣S′∣−2
种方案,产生
(∣S′∣−1)×2∣S′∣−2×x2
的贡献
- x,y
是不同的元素,注意是元素不同,不是值不同
显然
y
是普通元素
若
x
是普通元素,类似的有
(∣S′∣−2)×2∣S′∣−3
种方案
若
x
是特殊元素,在剩下的
∣S′∣−2
个元素中任选作为普通元素,有
s∣S′∣−2
种方案
共
(∣S′∣−2)×2∣S′∣−3+s∣S′−2∣
种方案,产生贡献
[(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]×x×y
回到本题,由于
freq
特别大,把值相同的元素放在一起考虑
相同值
x
之间的贡献有两种
- 同元素
乘上值为
x
的元素个数
有贡献
(∣S′∣−1)×2∣S′∣−2×x2×freqx
- 不同元素
有贡献
[(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]×x2×freqx×(freqx−1)
不同的值
x,y
之间的贡献
类似的
[(∣S′∣−2)×2∣S′∣−3+s∣S′∣−2]x×y×freqx×freqy
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]
复杂度为调和级数
代码 codeforces
submission 144913462