杜教筛

\[\begin{split}
(g*f)(i)&=\sum_{d|i}g(d)f(\frac id)\\
\Rightarrow g(1)S(n)&=\sum_{i=1}^n(g*f)(i)-\sum_{i=2}^ng(i)S(\frac ni)
\end{split}
\]

其中,\(S(x)\)为\(f()\)的前缀和。


套路一:\(\mu\)

由\((1*\mu)=e\),取\(g(x)=1\)。

\[\begin{split}
S(n)=1-\sum_{i=2}^nS(\frac ni)
\end{split}
\]

可以用线性筛预处理一部分\(\mu\)的前缀和,剩下的用杜教筛记忆化搜索即可。

  1. int Smu(int x){
  2. if(x<=M)return mu[x];
  3. if(smu[x])return smu[x];
  4. int ret=1;
  5. for(int l=2,r=0;r!=x;l=r+1){
  6. r=x/(x/l);
  7. ret-=1ll*(r-l+1)*Smu(x/l);
  8. }
  9. return smu[x]=ret;
  10. }

例题

【CQOI2015】选数

【BZOJ3944】Sum


套路2:\(\varphi\)

由\((1*\varphi)=Id\),取\(g(x)=1\)。

\[S(n)=\frac {n \cdot (n+1)}2-\sum_{i=2}^nS(\frac ni)
\]

  1. LL Sphi(int x){
  2. if(x<=M)return phi[x];
  3. if(sphi[x])return sphi[x];
  4. LL ret=1ll*x*(1ll*x+1)/2;
  5. for(int l=2,r=0;r!=x;l=r+1){
  6. r=x/(x/l);
  7. ret-=1ll*(r-l+1)*Sphi(x/l);
  8. }
  9. return sphi[x]=ret;
  10. }

例题

【BZOJ4805】欧拉函数求和

【BZOJ3944】Sum


其他题目:

【BZOJ4916】神犇与蒟蒻

杜教筛&套路总结的更多相关文章

  1. 我也不知道什么是"莫比乌斯反演"和"杜教筛"

    我也不知道什么是"莫比乌斯反演"和"杜教筛" Part0 最近一直在搞这些东西 做了将近超过20道题目吧 也算是有感而发 写点东西记录一下自己的感受 如果您真的 ...

  2. 【Luogu3768】简单的数学题(莫比乌斯反演,杜教筛)

    [Luogu3768]简单的数学题(莫比乌斯反演,杜教筛) 题面 洛谷 \[求\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j)\] $ n<=10^9$ 题解 很明显的把\( ...

  3. 杜教筛:Bzoj3944: sum

    题意 求\(\sum_{i=1}^{n}\varphi(i)和\sum_{i=1}^{n}\mu(i)\) \(n <= 2^{31}-1\) 不会做啊... 只会线性筛,显然不能线性筛 这个时 ...

  4. 51NOD 1237 最大公约数之和 V3 [杜教筛]

    1237 最大公约数之和 V3 题意:求\(\sum_{i=1}^n\sum_{j=1}^n(i,j)\) 令\(A(n)=\sum_{i=1}^n(n,i) = \sum_{d\mid n}d \c ...

  5. hihocoder #1456 : Rikka with Lattice(杜教筛)

    hihocoder #1456 : Rikka with Lattice(杜教筛) 题意 : 给你一个\(n*m\)方格图,统计上面有多少个格点三角形,除了三个顶点,不覆盖其他的格点(包括边和内部). ...

  6. 【BZOJ4805】欧拉函数求和(杜教筛)

    [BZOJ4805]欧拉函数求和(杜教筛) 题面 BZOJ 题解 好久没写过了 正好看见了顺手切一下 令\[S(n)=\sum_{i=1}^n\varphi(i)\] 设存在的某个积性函数\(g(x) ...

  7. 【BZOJ4916】神犇和蒟蒻(杜教筛)

    [BZOJ4916]神犇和蒟蒻(杜教筛) 题面 BZOJ 求 \[\sum_{i=1}^n\mu(i^2)\ \ 和\ \sum_{i=1}^n\phi(i^2)\] 其中\[n<=10^9\] ...

  8. BZOJ4916: 神犇和蒟蒻(杜教筛)

    题意 求 $$\sum_{i = 1}^n \mu(i^2)$$ $$\sum_{i = 1}^n \phi(i^2)$$ $n \leqslant 10^9$ Sol zz的我看第一问看了10min ...

  9. BZOJ4652 NOI2016循环之美(莫比乌斯反演+杜教筛)

    因为要求数值不同,不妨设gcd(x,y)=1.由提示可以知道,x/y是纯循环小数的充要条件是x·klen=x(mod y).因为x和y互质,两边同除x,得klen=1(mod y).那么当且仅当k和y ...

随机推荐

  1. [JZOJ 5791] 阶乘

    题意:求一个最小的\(m\),保证\(\prod a[i] * x = m!\) 思路: 考虑\(m!\)里面有多少个东西?? \(m\)个. 且是一个排列. 那么求一个最小的\(m\)使得前面的式子 ...

  2. C++之运算符重载(二元)

    一.加号+ 1.成员函数重载 2.友元函数重载 二.输出符号<< 三.索引符号 [ ] 四.补充说明 1.<二元运算符重载>课程评论: (一)为什么<<运算符的重载 ...

  3. opencv-图像形态学之开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    转自:https://blog.csdn.net/poem_qianmo/article/details/24599073 1.1 开运算(Opening Operation) 开运算(Opening ...

  4. JVM内核-原理、诊断与优化学习笔记(一):初识JVM

    文章目录 JVM的概念 JVM是Java Virtual Machine的简称.意为Java虚拟机 虚拟机 有哪些虚拟机 VMWare或者Visual Box都是使用软件模拟物理CPU的指令集 JVM ...

  5. 2019 牛客多校第三场 H Magic Line

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线 ...

  6. ubuntu 删除 mysql (转)

    1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 sudo apt-get ...

  7. java-day12

    数据结构 常用的数据存储结构:栈,队列,数组,列表,红黑树. 栈:先进后出(入口和出口在用一侧) 队列:先进先出 数组: 查询快:因为数组的地址是连续的,通过数组的首地址找到数组中的元素. 增/删慢: ...

  8. 榨取kkksc03

    题目描述 洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么 ...

  9. Android代号、版本及API级别之间的对应关系

    参考链接:Codenames, Tags, and Build Numbers  |  Android Open Source Project

  10. 搭建jeecg-boot项目运行

    实验版本: 2.0.2(发布日期:20190708) 项目地址:https://github.com/zhangdaiscott/jeecg-boot 说明文档:http://jeecg-boot.m ...