标签:lfloor log sum rfloor 反演 莫比 干掉 函数
学校题单里总共 8 个莫比乌斯反演,结果被一句话干掉 5 个!!!
标题党.jpg
干掉的题目:YY的GCD,数表,DZY Loves Math,数字表格,于神之怒加强版 .
正片开始:
随便一个数论函数 \(f\),你要求
\[\sum_{i=1}^n\sum_{j=1}^mf(\gcd(i,j)) \]首先构造一个数论函数 \(g\),使得 \(g*1=f\)(这可以通过 \(g=f*\mu\) 获得)
于是
\[\begin{aligned}\sum_{i=1}^n\sum_{j=1}^mf(\gcd(i,j))&=\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid\gcd(i,j)}g(d)\\&=\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}g(d)\\&=\sum_{d=1}^n\left\lfloor\dfrac nd\right\rfloor\left\lfloor\dfrac md\right\rfloor g(d)\end{aligned} \]做完了?
如果 \(f\) 是随便一个函数,假设求一行的时间复杂度为 \(O(f(n))\),那么可以在 \(O(f(n)+n\log\log n)\) 的时间复杂度完成 .
因为 Dirichlet 卷积都是可以 \(O(n\log\log n)\) 的,具体做法可以看 https://lx-2003.blog.luogu.org/mobius-inversion,当然 Dirichlet 前缀和也能做 .
一般我们见到的 \(f\) 都是积性函数,这样可以做到更快 .
因为 \(f,\mu\) 都是积性函数,那么 \(g=f*\mu\) 肯定也是积性函数,于是可以线性筛,怎么筛看具体题目,\(O(n)\) .
如果您比较牛逼,就整除分块套杜教筛,\(O(n^{3/4})\) .
做完了 .
标签:lfloor,log,sum,rfloor,反演,莫比,干掉,函数 来源: https://www.cnblogs.com/CDOI-24374/p/16366119.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。