题目传送门(内部题92)


输入格式

  一个整数$n$。


输出格式

  一个答案$ans$。


样例

样例输入:

13

样例输出:

9


数据范围与提示

  对于$20\%$的数据,$n\leqslant 10^6$。
  对于$40\%$的数据,$n\leqslant 10^{12}$。
  对于$100\%$的数据,$0\leqslant n\leqslant 10^{18}$。


题解

这道题里的小$\mu$其实就提示我们了$\mu$,也就是莫比乌斯函数。

那么,我们可以列出式子:

$$ans=\sum \limits_{i=1}^\sqrt{n}\mu(i)\left\lfloor\frac{n}{i^2}\right\rfloor$$

但是这个式子还是不足矣$AC$,考虑优化。

先考虑对于一段内的$\left\lfloor\frac{n}{i^2}\right\rfloor$是相等的,想到数论分块,对于一个区间$[l,r]$,满足$\left\lfloor\frac{n}{l^2}\right\rfloor=\left\lfloor\frac{n}{r^2}\right\rfloor$,那么现在就需要想办法快速求出每一段的$\sum \limits_{i=l}^r\mu(i)$。

很快想到杜教筛,然后这道题就没了……

时间复杂度:$\Theta(n^{\frac{2}{5}})$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
map<int,int>mp;
long long n;
long long ans;
bool vis[30000001];
int prime[30000001],mu[30000001],cnt;
void pre_work()
{
mu[1]=1;
for(int i=2;i<=30000000;i++)
{
if(!vis[i])
{
prime[cnt++]=i;
mu[i]=-1;
}
for(int j=0;j<cnt&&i*prime[j]<=30000000;j++)
{
vis[i*prime[j]]=1;
if(i%prime[j])mu[i*prime[j]]=-mu[i];
else{mu[i*prime[j]]=0;break;}
}
}
}
int get(int x)
{
if(x<=30000000)return mu[x];
if(mp[x])return mp[x];
int res=1;
for(int i=2,j;i<=x;i=j+1)
{
j=x/(x/i);
res-=get(x/i)*(j-i+1);
}
return mp[x]=res;
}
int main()
{
pre_work();scanf("%lld",&n);
for(int i=1;i<=30000000;i++)mu[i]+=mu[i-1];
for(long long i=1,j;i*i<=n;i=j+1)
{
j=sqrt(n/(n/(i*i)));
ans+=(n/(i*i))*(get(j)-get(i-1));
}
printf("%lld",ans);
return 0;
}

rp++

[CSP-S模拟测试]:123567(莫比乌斯函数+杜教筛+数论分块)的更多相关文章

  1. 51nod1238 最小公倍数之和 V3 莫比乌斯函数 杜教筛

    题意:求\(\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\). 题解:虽然网上很多题解说用mu卡不过去,,,不过试了一下貌似时间还挺充足的,..也许有时间用phi ...

  2. bzoj 4916: 神犇和蒟蒻【欧拉函数+莫比乌斯函数+杜教筛】

    居然扒到了学长出的题 和3944差不多(?),虽然一眼看上去很可怕但是仔细观察发现,对于mu来讲,答案永远是1(对于带平方的,mu值为0,1除外),然后根据欧拉筛的原理,\( \sum_{i=1}^{ ...

  3. bzoj 3512: DZY Loves Math IV【欧拉函数+莫比乌斯函数+杜教筛】

    参考:http://blog.csdn.net/wzf_2000/article/details/54630931 有这样一个显然的结论:当\( |\mu(n)|==1 \)时,\( \phi(nk) ...

  4. 51nod 1244 莫比乌斯函数之和 【莫比乌斯函数+杜教筛】

    和bzoj 3944比较像,但是时间卡的更死 设\( f(n)=\sum_{d|n}\mu(d) g(n)=\sum_{i=1}^{n}f(i) s(n)=\sum_{i=1}^{n}\mu(i) \ ...

  5. LOJ#6491. zrq 学反演(莫比乌斯反演 杜教筛)

    题意 题目链接 Sol 反演套路题? 不过最后一步还是挺妙的. 套路枚举\(d\),化简可以得到 \[\sum_{T = 1}^m (\frac{M}{T})^n \sum_{d \ | T} d \ ...

  6. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  7. [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)

    [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数 ...

  8. 【bzoj3930】[CQOI2015]选数 莫比乌斯反演+杜教筛

    题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一 ...

  9. 51nod 1237 最大公约数之和 V3【欧拉函数||莫比乌斯反演+杜教筛】

    用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i= ...

随机推荐

  1. scrapy框架设置代理ip,headers头和cookies

    [设置代理ip] 根据最新的scrapy官方文档,scrapy爬虫框架的代理配置有以下两种方法: 一.使用中间件DownloaderMiddleware进行配置使用Scrapy默认方法scrapy s ...

  2. 【转载】Django自带的注册登陆功能

    1.登陆 知识点: a.auth.authenticate(username=name值, password=password值) 验证用户名和密码 b.auth.login(request, use ...

  3. wex5 sqllite本地数据库的运用

    http://doc.wex5.com/?p=3774 需要引入包require("cordova!com.brodysoft.sqlitePlugin"); //本地数据库操作 ...

  4. 解决 "Could not autowire. No beans of 'SationMapper' type found" 的问题

    网上查找的方法,附上原文链接:https://blog.csdn.net/Coder_Knight/article/details/83999139 方法1:在mapper文件上加@Repositor ...

  5. 一文简单理解package-lock.json

    根据官方文档,https://docs.npmjs.com/files/package-lock.json 这个package-lock.json 是在 `npm install`时候生成一份文件,用 ...

  6. Java面试总结 -2018(补录)

    参考详见:https://blog.csdn.net/jackfrued/article/details/44921941 https://blog.csdn.net/jackfrued/articl ...

  7. nodejs fs copy本地文件src dst

    1. // fs.writeFileSync(pathNewFile, fs.readFileSync(fileName)); 2.   fs.createReadStream(fileName).p ...

  8. 一、Core授权-2 之.net core 基于Jwt实现Token令牌

    一.Startup类配置 ConfigureServices中 //添加jwt验证: services.AddAuthentication(JwtBearerDefaults.Authenticati ...

  9. Zabbix监控Dell服务器相关硬件资源

    一.安装dell服务器硬件监控工具OMSA 1.安装dell的yum源 [root@push-- ~]# wget -q -O - http://linux.dell.com/repo/hardwar ...

  10. 安装BCG界面库 会导致vs2013qt库配置消失

    安装BCG界面库 会导致vs2013qt库配置消失 安装BCG界面库 会导致vs2013qt库配置消失 安装BCG界面库 会导致vs2013qt库配置消失