51nod1244 莫比乌斯函数之和 杜教筛
虽然都写了,过也过了,还是觉得杜教筛的复杂度好玄学
设f*g=h,∑f=S,
则∑h=∑f(i)S(n/i下取整)
把i=1时单独拿出来,得到
S(n)=(∑h-∑2->n f(i)S(n/i下取整)
右边的部分可以分块解决
递归一下,≤一个阈值的暴力表出来
注意阈值以上的也要记忆化
复杂度不会算,但从本题来看过1e10没问题
#include <bits/stdc++.h>
#define MAX 5000000
using namespace std;
long long a,b,N;
long long miu[MAX+],p[MAX],ans[MAX];
bool bo[MAX+];
long long work(long long n)
{
if(n<=MAX) return miu[n];
if(ans[N/n]) return ans[N/n];
long long ret=;
for(long long j=;j<=n;)
{
long long nex=n/(n/j);
ret-=(nex-j+)*work(n/j);
j=nex+;
}
ans[N/n]=ret;
return ret;
}
int main()
{
int sum=;miu[]=;
for(int i=;i<=MAX;i++)
{
if(!bo[i])
p[++sum]=i,miu[i]=-;
for(int j=;j<=sum;j++)
{
if((long long)p[j]*i<=MAX)
{
bo[p[j]*i]=;
miu[i*p[j]]=-miu[i]*(bool)(i%p[j]);
}
else break;
if(i%p[j]==) break;
}
}
for(int i=;i<=MAX;i++)
miu[i]+=miu[i-];
scanf("%lld%lld",&a,&b);
N=b;
long long ans1=work(b);
for(int i=;i<=MAX;i++)
ans[i]=;
N=a-;
long long ans2=work(a-);
printf("%lld\n",ans1-ans2);
return ;
}
51nod1244 莫比乌斯函数之和 杜教筛的更多相关文章
- 51 NOD 1244 莫比乌斯函数之和(杜教筛)
1244 莫比乌斯函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens) ...
- 【51nod-1239&1244】欧拉函数之和&莫比乌斯函数之和 杜教筛
题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod. ...
- 51Nod.1244.莫比乌斯函数之和(杜教筛)
题目链接 map: //杜教筛 #include<map> #include<cstdio> typedef long long LL; const int N=5e6; in ...
- 51 NOD 1239 欧拉函数之和(杜教筛)
1239 欧拉函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目.此函数以其首名研究 ...
- 【51nod】1239 欧拉函数之和 杜教筛
[题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varph ...
- 51nod1244 欧拉函数之和 杜教筛
和上一题差不多,一个是μ*I=e,一个是φ*I=Id 稍改就得到了这题的代码 (我会告诉你我一开始逆元算错了吗) #include <bits/stdc++.h> #define MAX ...
- 我也不知道什么是"莫比乌斯反演"和"杜教筛"
我也不知道什么是"莫比乌斯反演"和"杜教筛" Part0 最近一直在搞这些东西 做了将近超过20道题目吧 也算是有感而发 写点东西记录一下自己的感受 如果您真的 ...
- 【BZOJ3930】选数(莫比乌斯反演,杜教筛)
[BZOJ3930]选数(莫比乌斯反演,杜教筛) 题面 给定\(n,K,L,R\) 问从\(L-R\)中选出\(n\)个数,使得他们\(gcd=K\)的方案数 题解 这样想,既然\(gcd=K\),首 ...
- 【BZOJ4652】【NOI2016】循环之美(莫比乌斯反演,杜教筛)
[BZOJ4652]循环之美(莫比乌斯反演,杜教筛) 题解 到底在求什么呢... 首先不管他\(K\)进制的问题啦,真是烦死啦 所以,相当于有一个分数\(\frac{i}{j}\) 因为值要不相等 所 ...
随机推荐
- 英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧)
英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧) 一.总结 一句话总结: Let's go get a root beer. 1.(Ralph)让我来瞧瞧你的本事 ...
- java对象的初始化过程和创建对象的几种方式
1.加载父类,加载父类的静态属性和静态代码块 2.加载子类,加载子类的静态属性和静态代码块 3.初始化父类中的非静态属性并赋初值,执行父类非静态代码块,执行父类构造. 4.初始化子类中的非静态属性并赋 ...
- CentOS 6以下版本 支持Ext4
CentOS默认是不支持Ext4.所以你需要处理一下才行. 使用环境使用的是CentOS5.8 内核是 2.6.18-238.19.1.el5 其实CentOS 5.8 里面是有 ext4 模块的, ...
- ACM学习历程—HDU 5317 RGCDQ (数论)
Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more an ...
- 演讲:对 2000 多亿条数据做一次 group by 需要多久?
http://2017.qconbeijing.com/presentation/646?utm_source=weibo&utm_medium=infoq&utm_campaign= ...
- CodeFlex AutoUpdate
http://autoupdaterdotnet.codeplex.com/downloads/get/888100
- ACM-ICPC2018南京网络赛 AC Challenge(一维状压dp)
AC Challenge 30.04% 1000ms 128536K Dlsj is competing in a contest with n (0 < n \le 20)n(0<n ...
- unity2017分离动作
http://tsubakit1.hateblo.jp/entry/2015/06/01/235939 using UnityEngine; using UnityEditor; using Syst ...
- 2017 Gartner Hype Cycle for Emerging Technologies: AI, AR/VR, Digital Platforms
- 蓝桥杯PREV-12(dfs&割点)
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T35 题意:中文题诶- 思路:dfs 假设star 和 end之间总路径数目为ans, 那么若经过路径上某点到 ...