首页 > 其他分享 >莫比乌斯反演 学习笔记

莫比乌斯反演 学习笔记

时间:2023-06-27 20:03:56浏览次数:49  
标签:dfrac lfloor frac gcd limits 乌斯 sum 反演 莫比

炫酷反演魔术!

莫反会用到的具体性质证明先不写,先写题。

与其说是学习笔记,不如说是简要的题解集合。

不太想贴太多代码啊,翻起来很烦。

P3455 [POI2007]ZAP-Queries

很基础的一道题。令 \(a\le b\),考虑 \(k=1\) 的情况。

\[\begin{aligned} ans&=\sum\limits_{i=1}^a\sum\limits_{j=1}^b[\gcd(i,j)=1]\\ &=\sum\limits_{i=1}^a\sum\limits_{j=1}^b\varepsilon(\gcd(i,j))\\ &=\sum\limits_{i=1}^a\sum\limits_{j=1}^b\sum\limits_{d|\gcd(i,j)}\mu(d)\\ &=\sum\limits_{d=1}^a\mu(d)\sum\limits_{d|a}\sum\limits_{d|b}\\ &=\sum\limits_{d=1}^a\mu(d)\lfloor\dfrac{a}{d}\rfloor\lfloor\dfrac{b}{d}\rfloor\\ \end{aligned} \]

线性筛预处理 \(\mu(n)\) 前缀和,二维整除分块即可。那么,\(k>1\) 呢?直接 \(a\gets\lfloor\dfrac{a}{k}\rfloor\),\(b\gets\lfloor\dfrac{b}{k}\rfloor\) 即可。

P2522 [HAOI2011]Problem b

容斥以后就跟上面是一样的了。

AcWing221. 龙哥的问题

显然上式等于 \(\sum\limits_{d|n}d\times\varphi(\dfrac{n}{d})\)。因为 \(\varphi(n)\) 是积性函数,所以对于 \(n=\prod\limits_{i=1}^kp_i^{e_i}\),有上式等于 \(\prod\limits_{i=1}^k\sum\limits_{j=0}^{e_i}p_i^j\times\varphi(p_i^{e_i-j})\)。对于 \(e_i-j>0\),容易发现 \(p_i^j\times\varphi(p_i^{e_i-j})\) 始终为 \((p_i-1)p_i^{e_i-1}\)。所以上式等于 \(\prod\limits_{i=1}^ke_i(p_i-1)p_i^{e_i-1}+p_i^{e_i}\)。

HDU1695 GCD

相当于求 \(\sum\limits_{i=1}^b\sum\limits_{j=i}^d[\gcd(i,j)=k]\),在 ZAP-Queries 的基础上减去 \(-[b\ge 1]+\sum\limits_{i=1}^b\varphi(i)\) 即可。

md,有 \(k=0\) 的情况,不特判会 RE。

P1829 [国家集训队]Crash的数字表格 / JZPTAB

令 \(n\le m\)。

\[\begin{aligned} ans&=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\text{lcm}(i,j)\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\dfrac{ij}{\gcd(i,j)}\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{d|i,d|j,\gcd(\frac{i}{d},\frac{j}{d})=1}\dfrac{ij}{d}\\ &=\sum\limits_{d=1}^nd\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}ij\cdot [\gcd(i,j)=1]\\ &=\sum\limits_{d=1}^nd\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}ij\cdot \varepsilon(\gcd(i,j))\\ \end{aligned} \]

记 \(f(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^mij\cdot \varepsilon(\gcd(i,j))\),令 \(n\le m\)。

\[\begin{aligned} f(n,m)&=\sum\limits_{i=1}^n\sum\limits_{j=1}^mij\cdot \varepsilon(\gcd(i,j))\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^mij\sum\limits_{d|\gcd(i,j)}\mu(d)\\ &=\sum\limits_{d=1}^n\mu(d)\cdot d^2\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}ij\\ &=\sum\limits_{d=1}^n\mu(d)\cdot d^2\dfrac{(\lfloor\frac{n}{d}\rfloor+1)\lfloor\frac{n}{d}\rfloor}{2}\cdot\dfrac{(\lfloor\frac{m}{d}\rfloor+1)\lfloor\frac{m}{d}\rfloor}{2}\\ \end{aligned} \]

\(f(n,m)\) 可以整除分块 \(O(\sqrt{n}+\sqrt{m})\) 求,\(ans=\sum\limits_{d=1}^nd\cdot f(\lfloor\frac{n}{d}\rfloor,\lfloor\frac{m}{d}\rfloor)\) 也可以整除分块 \(O(\sqrt{n}+\sqrt{m})\) 求,总的就是 \(O(n)\)。

算 \(f(n,m)\) 的时候注意因为 \(n,m\le10^7\),\(\dfrac{(\lfloor\frac{m}{d}\rfloor+1)\lfloor\frac{m}{d}\rfloor}{2}\) 先乘后除不会爆 long long,但如果直接乘上前面那部分再取模就会了,建议三项分别取模再一个个撑起来取模。

SPOJ5971 LCMSUM - LCM Sum

没做出来,看了 oiwiki 之后大受震撼,就当见世面了。

多测,求 \(\sum\limits_{i=1}^n\text{lcm}(i,n)\)。\(n,T\le50000\)。

\[\begin{aligned} ans&=\sum\limits_{i=1}^n\text{lcm}(i,n)\\ &=\sum\limits_{i=1}^{n}\dfrac{in}{\gcd(i,n)}\\ &=n+\dfrac{1}{2}\sum\limits_{i=1}^{n-1}\dfrac{in}{\gcd(i,n)}+\dfrac{in}{\gcd(n-i,n)}\\ &=n+\dfrac{1}{2}\sum\limits_{i=1}^{n-1}\dfrac{in+(n-i)n}{\gcd(i,n)}\\ &=n+\dfrac{1}{2}\sum\limits_{i=1}^{n-1}\dfrac{n^2}{\gcd(i,n)}\\ &=\dfrac{n}{2}+\dfrac{1}{2}\sum\limits_{i=1}^{n}\dfrac{n^2}{\gcd(i,n)}\\ &=\dfrac{n}{2}+\dfrac{1}{2}\sum\limits_{i=1}^{n}\sum\limits_{d|i,d|n,\gcd(\frac{i}{d},\frac{n}{d})=1}\dfrac{n^2}{d}\\ &=\dfrac{n}{2}+\dfrac{n^2}{2}\sum\limits_{d|n}\frac{1}{d}\varphi(\frac{n}{d})\\ &=\dfrac{n}{2}+\dfrac{n^2}{2}\sum\limits_{d|n}\frac{d}{n}\varphi(d)\\ &=\dfrac{n}{2}+\dfrac{n}{2}\sum\limits_{d|n}d\varphi(d)\\ \end{aligned} \]

令 \(f(n)=\sum\limits_{d|n}d\varphi(d)\),显然 \(f(n)\) 是积性函数。只要我们能线性筛出 \(f(n)\) 就可以做到 \(O(n+T)\) 了。那么,能做到吗?

如果 \(p\nmid n\),则 \(f(np)=f(n)f(p)\);否则,令 \(n=n'p^k,\gcd(n',p)=1\),考虑 \(f(p^k)\) 的值。\(f(p^k)=\sum\limits_{i=0}^kp^i\varphi(p^i)=p^k\varphi(p^k)+\sum\limits_{i=0}^{k-1}p^i\varphi(p^i)=p^k(p-1)p^{k-1}+f(p^{k-1})\)。则

\[\begin{aligned} &f(np)=f(n')f(p^{k+1})=f(n')((p-1)p^{2k+1}+f(p^k))\\ &f(n)=f(n')f(p^k)=f(n')((p-1)p^{2k-1}+f(p^{k-1}))\\ &f(\frac{n}{p})=f(n')f(p^{k-1})\\ \end{aligned} \]

相邻作差得到

\[\begin{aligned} &f(np)-f(n)=f(n')f(p^{k+1})=f(n')(p-1)p^{2k+1}\\ &f(n)-f(\frac{n}{p})=f(n')(p-1)p^{2k-1}\\ \end{aligned} \]

故 \(f(np)=f(n)+f(n')(p-1)p^{2k+1}=f(n)+p^2(f(n)-f(\frac{n}{p}))\)。

P3327 [SDOI2015] 约数个数和

先根据 \(d(nm)\) 的性质推一下性质。

\[\begin{aligned} d(nm)&=\sum\limits_{i|n}\sum\limits_{j|m}[\gcd(i,j)=1]\\ &=\sum\limits_{i|n}\sum\limits_{j|m}\varepsilon(\gcd(i,j))\\ &=\sum\limits_{i|n}\sum\limits_{j|m}\sum_{d|\gcd(i,j)}\mu(d)\\ &=\sum_{d=1}^n\mu(d)\sum\limits_{i|n}\sum\limits_{j|m}[d|\gcd(i,j)]\\ &=\sum_{d|n,d|m}\mu(d)\sum\limits_{i|\frac{n}{d}}\sum\limits_{j|\frac{m}{d}}1\\ &=\sum_{d|n,d|m}\mu(d)d(\frac{n}{d})d(\frac{m}{d})\\ \end{aligned} \]

代回题目所求式子,得

\[\begin{aligned} ans&=\sum\limits_{i=1}^n\sum\limits_{j=1}^m d(ij)\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum_{d|i,d|j}\mu(d)d(\frac{i}{d})d(\frac{j}{d})\\ &=\sum_{d=1}^n\mu(d)\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}d(i)d(j)\\ &=\sum_{d=1}^n\mu(d)\left(\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}d(i)\right)\left(\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}d(j)\right)\\ \end{aligned} \]

可以在 \(O(n)\) 的时间内预处理 \(d(i)\) 及其前缀和。

\[d(np)=\begin{cases}2d(n)&p\nmid n\\2d(n)-d(\frac{n}{p})&p\mid n\end{cases} \]

总时间复杂度 \(O(n+T\sqrt{n})\)。

标签:dfrac,lfloor,frac,gcd,limits,乌斯,sum,反演,莫比
From: https://www.cnblogs.com/xx019/p/17504011.html

相关文章

  • bzoj 2839. 集合计数 二项式反演
    集合计数设fi表示恰好交集为k的方案数。设gi表示交集至少为k的方案数。\(g_i=\sum_{j=i}^{n}C(j,i)f_j\)由二项式反演得:\(f_k=\sum_{i=k}^{n}(-1)^{i-k}C(i,k)g_i\)考虑\(g_i\)的求出,钦定\(i\)个数必选那么剩下\(n-i\)个数每个数可选可不选\(2^{n-i}\)但这道题我们选出的......
  • SolidWorks软件三维建模教程——莫比乌斯环建模案例
    SolidWorks是达索系统(DassaultSystemes)下的子公司,专门负责研发与销售机械设计软件的视窗产品。SOLIDWORKS软件三维建模功能强大,为制造型企业提供SOLIDWORKS一体化解决方案和服务。今天微辰三维就以莫比乌斯环的三维建模案例,为您提供详细的SolidWorks软件三维建模教程。一起来看如......
  • P4859 已经没有什么好害怕的了 二项式反演
    这道题给出两个数组且每个数字都不同。要求两两配对,这样每一个配对都有一个大小关系。要求第一组大的个数比第二组大的恰好k个配对。显然一共有\(n\)个大小关系,那么容易想到\(n-k\)必然是一个偶数才会有对应方案。那么题目其实是要求第一组比第二组大的个数恰好为\(k+\frac{n-k......
  • [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题
    [MtOI2019]幽灵乐团/莫比乌斯反演基础练习题题目描述东风谷早苗(KochiyaSanae)非常喜欢幽灵乐团的演奏,她想对她们的演奏评分。因为幽灵乐团有\(3\)个人,所以我们可以用\(3\)个正整数\(A,B,C\)来表示出乐团演奏的分数,她们的演奏分数可以表示为\[\prod_{i=1}^{A}\prod_......
  • P5518 [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题
    简要题意计算\[\prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left(\frac{\text{lcm}(i,j)}{\gcd(i,k)}\right)^{f(type)}\]其中:\[\begin{aligned}f(0)&=1\crf(1)&=i\timesj\timesk\crf(2)&=\gcd(i,j,k)\end{aligned}\]\(T\)组数据,每......
  • 算法学习笔记(24): 狄利克雷卷积和莫比乌斯反演
    狄利克雷卷积和莫比乌斯反演看了《组合数学》,再听了学长讲的……感觉三官被颠覆……目录狄利克雷卷积和莫比乌斯反演狄利克雷卷积特殊的函数函数之间的关系除数函数和幂函数欧拉函数和恒等函数卷积的逆元莫比乌斯函数与莫比乌斯反演求法数论分块(整除分块)莫比乌斯反演的经典结......
  • 莫比乌斯反演
    这里讲述几个莫比乌斯反演的套路技巧。我们从一道道例题讲起。\(\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)=1]=\sum_{i=1}^n\mu(i)\lfloor\frac{n}{i}\rfloor^2\)这就是一般公式\([gcd(i,j)=1]=\sum_{d|i,d|j}^n\mu(d)\)的衍生,不会做不了题。暴力算\(\gcd\)转换为枚举......
  • 二项式反演两题
    例题一[JSOI2011]分特产题目描述JYY带队参加了若干场\(\text{ACM/ICPC}\)比赛,带回了许多土特产,要分给实验室的同学们。JYY想知道,把这些特产分给\(n\)个同学,一共有多少种不同的分法?当然,JYY不希望任何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个......
  • 【反演】基于遗传算法实现均匀地层模型随钻电磁波测井反演附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 子集反演
    什么是子集反演?当然在此之前说明子集反演是什么:子集反演用于在恰好是某个子集和在这个子集中钦定/钦定这个子集之间转换。并且子集反演有两种形式。第一种:现在有一个集合\(A\),我们定义\(f(A)\)表示集合\(A\)的答案,\(g(A)\)表示\(A\)的所有子集的答案。如果有......