题目链接

https://lydsy.com/JudgeOnline/problem.php?id=4916

题解

∑i=1Nμ(i2)=1∑i=1Nφ(i2)=∑i=1Niφ(i) \sum_{i=1}^N \mu(i^2)=1\\ \sum_{i=1}^N \varphi(i^2)=\sum_{i=1}^N i\varphi(i) i=1∑N​μ(i2)=1i=1∑N​φ(i2)=i=1∑N​iφ(i)

直接杜教筛即可。

代码

#include <map>
#include <cstdio>int read()
{int x=0,f=1;char ch=getchar();while((ch<'0')||(ch>'9')){if(ch=='-'){f=-f;}ch=getchar();}while((ch>='0')&&(ch<='9')){x=x*10+ch-'0';ch=getchar();}return x*f;
}const int maxn=1000000;
const int mod=1000000007;
const int inv6=166666668;int p[maxn+10],prime[maxn+10],cnt,f[maxn+10];int getprime()
{p[1]=f[1]=1;for(int i=2; i<=maxn; ++i){if(!p[i]){prime[++cnt]=i;f[i]=i-1;}for(int j=1; (j<=cnt)&&(i*prime[j]<=maxn); ++j){int x=i*prime[j];p[x]=1;if(i%prime[j]==0){f[x]=f[i]*prime[j];break;}f[x]=f[i]*(prime[j]-1);}}for(int i=1; i<=maxn; ++i){f[i]=(f[i-1]+1ll*f[i]*i)%mod;}return 0;
}std::map<int,int> mp;int getsum(int n)
{if(n<=maxn){return f[n];}if(mp.count(n)){return mp[n];}int ans=1ll*n*(n+1)%mod*(2*n+1)%mod*inv6%mod;for(int l=2,r; l<=n; l=r+1){r=n/(n/l);ans=(ans-((1ll*r*(r+1)/2)-(1ll*(l-1)*l)/2)%mod*getsum(n/l))%mod;if(ans<0){ans+=mod;}}return mp[n]=ans;
}int n;int main()
{getprime();n=read();printf("1\n%d\n",getsum(n));return 0;
}

转载于:https://www.cnblogs.com/Canopus-wym/p/10376064.html

BZOJ 4916 神犇和蒟蒻相关推荐

  1. [BZOJ 4916]神犇和蒟蒻

    传送门 Description \[ sum_G(n)=\sum_{i=1}^n \mu(i^2)\\sum_F(n)=\sum_{i=1}^n \phi(i^2) \] Solution For a ...

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

    [BZOJ4916]神犇和蒟蒻(杜教筛) https://www.cnblogs.com/cjyyb/p/8297338.html 杜教筛技巧

  3. 【bzoj4916】神犇和蒟蒻 杜教筛

    题目描述 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出 请你输出一个整数A=\sum_{ ...

  4. 【BZOJ4916】神犇与蒟蒻

    题面 Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;\(1<=N<=10^9\),A.B模\(10^9+7 ...

  5. bzoj4916: 神犇和蒟蒻(杜教筛)

    Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=109,A.BN;1<=N<=10^ ...

  6. bzoj4916 神犇和蒟蒻

    求μ\mu的不用说了. 构造和式 ∑i=1n∑d|iφ(d)∗d∗id \sum_{i=1}^n\sum_{d|i}\varphi(d)*d*\frac i d 一方面 上式=∑ni=1i2\text ...

  7. 这是蒟蒻,勾搭神犇.

    这是SD 莱芜一中的蒟蒻,勾搭神犇.目标NOIP.这个博客最主要的一个目的是求大神们一起玩♂耍,欢迎大家留言. DQS学长给我加了友情链接,这个博客的确要好好搞一搞了.老师说整理博客是一件好事,可是我 ...

  8. 蒟蒻的python 学习笔记 ——北京理工大学嵩天mooc(有时间就看就更新,尽量让笔记容易懂,蟹蟹各位大神不吝赐教)

    蒟蒻的python 学习笔记 前言 课一:python语言程序设计 第一周:python 基本语法元素 1.1 程序设计基本方法 1.2 python 环境配置 1.3 实例1:温度转换 1.4 py ...

  9. BZOJ 4636 蒟蒻的数列

    4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MB Submit: 618  Solved: 271 [Submit][Status][Discu ...

最新文章

  1. LeetCode Best Time to Buy and Sell Stock(dp)
  2. 我的自我介绍以及决心书
  3. 按住 ctrl 并滚动鼠标滚轮才可缩放地图_ZBrush自定义缩放快捷键
  4. 将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的空间。表中不允许又重复的数据
  5. 年薪50万码农转行卖凉皮,互联网思维又一次颠覆?
  6. Qt工作笔记-QStylePlugin插件实现变化窗体背景
  7. c# 智能升级程序代码(2)
  8. 广西桂林平均工资是多少?
  9. Linux下新手基本操作及技巧看图上路
  10. maya 处理 linux 鼠标变X
  11. 毕设题目:Matlab图像配准
  12. mysql hive的导数_记一次蛋疼的mongo to hive导数过程
  13. 阿辉DirectX 11学习笔记一
  14. [批处理]在线获取双色球开奖结果历史数据
  15. SuperMap 查询
  16. 机械工程基础笔记整理
  17. 远程桌面计算机用户名,远程桌面设置及使用
  18. 关于程序员的20 幅幽默漫画,太真实了!
  19. 三年初心不改,iQOO如何树立电竞旗舰新标杆?
  20. win10安装jdk及环境配置

热门文章

  1. Linux 下查看某一个程序所使用的内存方法介绍
  2. 猎豹移动(金山网络)2015校园招聘(c++project师)
  3. 微信开发学习日记(二):3个案例
  4. AIX 添加开机启动项
  5. windows 开启防火墙策略允许ftp端口通过
  6. UVA 10254 The Priest Mathematician
  7. Spring AOP功能和目标
  8. centos7: ifconfig出现command not found解决办法
  9. java 运行时异常与非运行时异常理解
  10. python操作SQL