最小公倍佩尔数 题解

首先需要知道 f 是个啥

这里直接给出结论,过程可以看大佬的博客

f(n)=2f(n1)+f(n2)

f(0)=0

f(1)=1

这种类似 斐波那契数列的递推式有结论 gcd(f(x),f(y))=f(gcd(x,y)) 通过辗转相减证明

那么一个集合的 gcd 是好求的,所以考虑进行 minmax 容斥

lcm(S)=TS,T∅̸gcd(T)(1)|T|1

那我们求的就是

TS,T∅̸f(gcd(T))(1)|T|1

=d=1nf(d)TS,T∅̸[gcd(T)=d](1)|T|1

现在只处理角标

TS,T∅̸[gcd(T)=d](1)|T|1

=TS,T∅̸x|gcd(T)dμ(x)(1)|T|1

=TS,T∅̸xd|gcd(T)μ(x)(1)|T|1

=x=1ndμ(x)TS(1)|T|1

其中 ssxd 的倍数除以 xd,即1,2,..nxd

TS,T∅̸(1)|T|1

=i=1size(1)i+1

=i=1size(1)i

=1i=0size(1)i

=1[T=]

那么带回去

x=1ndμ(x)TS(1)|T|1

因为 dx<=n 所以S非空

=x=1ndμ(x)

于是我们要求的变成

=d=1nf(d)x=1ndμ(x)

考虑 dx<=n 的都会产生贡献,我们枚举 i=dx,式子就是

=i=1nd|if(id)μ(d)

posted @   Chen_jr  阅读(50)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示