2023.1.30 闲话
推歌:デビルじゃないもん .
APJ 给我发了一个论文鸽的云剪切板 /paste/ljlnucke,我来摘抄一下 .
zeta 变换(因子方向):
(Dirichlet 前缀和,素因子维度上高维前缀和,Möbius 变换的逆)
\(\Theta(n\log n)\) 算法:枚举倍数,复杂度是调和级数 .
\(\Theta(n\log\log n)\) 算法:枚举素数作高维前缀和,根据 Mertens 第二定理就是 \(\Theta(n\log\log n)\) .
zeta 变换(倍数方向):
(Dirichlet 后缀和,素因子维度上高维后缀和,Möbius 变换的逆)
倍数方向的分析种常令 \(n\) 为使得 \(f(n)\neq 0\) 的最大 \(n\),一般认为存在这样的整数 \(n\) .
\(\Theta(n\log n)\) 算法:枚举倍数,复杂度是调和级数 .
\(\Theta(n\log\log n)\) 算法:略 .
Möbius 变换(因子方向):
\(\Theta(n\log n)\) 算法:枚举倍数,复杂度是调和级数 .
\(\Theta(n\log\log n)\) 算法:和 zeta 变换完全相反做即可
_rqy 有一个 DP 解释:
比如要算 \(f*\mu=g\),也就是 \(g=f\mu\) 的时候,考虑令
可以转移:
也是根据 Mertens 第二定理可以得到复杂度 .
Möbius 变换(倍数方向):
倍数方向的分析种常令 \(n\) 为使得 \(f(n)\neq 0\) 的最大 \(n\),一般认为存在这样的整数 \(n\) .
\(\Theta(n\log n)\) 算法:枚举倍数,复杂度是调和级数 .
\(\Theta(n\log\log n)\) 算法:略 .
以上内容就是说 \(f\zeta = f*1\),\(f\mu = f*\mu\),倍数方向相反 .
一些性质:
逆:\(f\zeta\mu=f\mu\zeta=\zeta\mu f=\mu\zeta f=f\) .
卷积(gcd/lcm 卷积)
以上内容根据定义即可证明 .
听说 gcd/lcm 卷积可以推广到任意的半格
备份:原来编的题
给正整数 \(n\),求
\[\sum_{k=1}^nk\sum_{i=1}^{\lfloor\frac nk\rfloor}\sum_{d=1}^{\min\{i,k\}}\mu(d)\gamma_d(i)\gamma_d(k)\left\lfloor\dfrac nk\right\rfloor \]其中 \(\displaystyle\gamma_d(n)=\sum_{i\mid d}[\gcd(n,i)=1]\) .
\(1\le n\le 5\times 10^6\) .
观察可得原式即为
仔细观察可以发现就是 gcd 卷积,于是 \(\Theta(n\log\log n)\) 做就行了 .
四元组统计
给序列 \(\{a_n\}\),问有多少四元组 \((i,j,k,l)\) 满足 \(\gcd(a_i,a_j,a_k,a_l)=1\) .
多组数据,\(T\le 100\),\(n,a_i\le 10^4\) .
gcd 卷积 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17074962.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ