2023.1.30 闲话

推歌:デビルじゃないもん .


APJ 给我发了一个论文鸽的云剪切板 /paste/ljlnucke,我来摘抄一下 .


zeta 变换(因子方向):

fζ(n)=dnf(d)

(Dirichlet 前缀和,素因子维度上高维前缀和,Möbius 变换的逆)

Θ(nlogn) 算法:枚举倍数,复杂度是调和级数 .

Θ(nloglogn) 算法:枚举素数作高维前缀和,根据 Mertens 第二定理就是 Θ(nloglogn) .


zeta 变换(倍数方向):

ζf(n)=ndf(d)

(Dirichlet 后缀和,素因子维度上高维后缀和,Möbius 变换的逆)

倍数方向的分析种常令 n 为使得 f(n)0 的最大 n,一般认为存在这样的整数 n .

Θ(nlogn) 算法:枚举倍数,复杂度是调和级数 .

Θ(nloglogn) 算法:略 .


Möbius 变换(因子方向):

fμ(n)=dnμ(nd)f(d)

Θ(nlogn) 算法:枚举倍数,复杂度是调和级数 .

Θ(nloglogn) 算法:和 zeta 变换完全相反做即可

_rqy 有一个 DP 解释:

比如要算 fμ=g,也就是 g=fμ 的时候,考虑令

gi,n=dnd 只含前 i 种素因子μ(nd)f(d)

可以转移:

gi,n={gi1,npingi1,ngi1,n/pipin

也是根据 Mertens 第二定理可以得到复杂度 .


Möbius 变换(倍数方向):

μf(n)=ndf(d)

倍数方向的分析种常令 n 为使得 f(n)0 的最大 n,一般认为存在这样的整数 n .

Θ(nlogn) 算法:枚举倍数,复杂度是调和级数 .

Θ(nloglogn) 算法:略 .


以上内容就是说 fζ=f1fμ=fμ,倍数方向相反 .

一些性质:

逆:fζμ=fμζ=ζμf=μζf=f .

卷积(gcd/lcm 卷积)

hζ(n)=fζ(n)gζ(n)h(n)=lcm(i,j)=nf(i)g(j)ζh(n)=ζf(n)ζg(n)h(n)=gcd(i,j)=nf(i)g(j)

以上内容根据定义即可证明 .

听说 gcd/lcm 卷积可以推广到任意的半格

备份:原来编的题

给正整数 n,求

k=1nki=1nkd=1min{i,k}μ(d)γd(i)γd(k)nk

其中 γd(n)=id[gcd(n,i)=1] .

1n5×106 .

观察可得原式即为

k=1ni=1nkd(ik)i=1nkik

仔细观察可以发现就是 gcd 卷积,于是 Θ(nloglogn) 做就行了 .


四元组统计

给序列 {an},问有多少四元组 (i,j,k,l) 满足 gcd(ai,aj,ak,al)=1 .

多组数据,T100n,ai104 .

gcd 卷积 .

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