【BZOJ4916】神犇与蒟蒻

news/2024/11/7 14:41:30/

题目大意

很久很久以前,有一只神犇叫yzy;
很久很久之后,有一只蒟蒻叫lty;

输入一个整数nnn1≤n≤1091\leq n\leq 10^91n109
请你输出一个整数A=∑i=1nμ(i2)A=\sum\limits_{i=1}^n\mu(i^2)A=i=1nμ(i2)
请你输出一个整数B=∑i=1nϕ(i2)B=\sum\limits_{i=1}^n\phi(i^2)B=i=1nϕ(i2)
A,BA,BA,B1e9+71e9+71e9+7


题解

前置知识:杜教筛

对于∑i=1nμ(i2)\sum\limits_{i=1}^n\mu(i^2)i=1nμ(i2),我们知道当i>1i>1i>1μ(i2)=0\mu(i^2)=0μ(i2)=0,所以AAA一定为111

对于∑i=1nϕ(i2)\sum\limits_{i=1}^n\phi(i^2)i=1nϕ(i2),我们可以注意到ϕ(i2)=iϕ(i)\phi(i^2)=i\phi(i)ϕ(i2)=iϕ(i),为什么呢?

我们可以把iii分成若干个质数的乘积,i=p1a1p2a2⋯pkaki=p_1^{a_1}p_2^{a_2}\cdots p_k^{a_k}i=p1a1p2a2pkak,因为ϕ(i)\phi(i)ϕ(i)是积性函数,所以

ϕ(i)=ϕ(p1a1)×ϕ(p2a2)×⋯×ϕ(pkak)=∏i=1k(pi−1)×pia1−1\phi(i)=\phi(p_1^{a_1})\times \phi(p_2^{a_2})\times \cdots\times \phi(p_k^{a_k})=\prod\limits_{i=1}^k(p_i-1)\times p_i^{a_1-1}ϕ(i)=ϕ(p1a1)×ϕ(p2a2)××ϕ(pkak)=i=1k(pi1)×pia11

ϕ(i2)=ϕ(p12a1)×ϕ(p22a2)×⋯×ϕ(pk2ak)=∏i=1k(pi−1)×pi2a1−1=(∏i=1kpiai)×(∏i=1k(pi−1)×pia1−1)=i×ϕ(i)\phi(i^2)=\phi(p_1^{2a_1})\times \phi(p_2^{2a_2})\times \cdots\times \phi(p_k^{2a_k})=\prod\limits_{i=1}^k(p_i-1)\times p_i^{2a_1-1}=(\prod\limits_{i=1}^kp_i^{a_i})\times (\prod\limits_{i=1}^k(p_i-1)\times p_i^{a_1-1})=i\times \phi(i)ϕ(i2)=ϕ(p12a1)×ϕ(p22a2)××ϕ(pk2ak)=i=1k(pi1)×pi2a11=(i=1kpiai)×(i=1k(pi1)×pia11)=i×ϕ(i)

由此可得ϕ(i2)=i×ϕ(i)\phi(i^2)=i\times \phi(i)ϕ(i2)=i×ϕ(i)

由狄利克雷卷积可得,ϕ∗I=Id\phi*I=IdϕI=Id

所以n=∑d∣nϕ(d)n=\sum\limits_{d|n}\phi(d)n=dnϕ(d)

n2=n∑d∣nϕ(d)=∑d∣nϕ(d)×d×nd=nϕ(n)+∑d∣n,d<nϕ(d)×d×ndn^2=n\sum\limits_{d|n}\phi(d)=\sum\limits_{d|n}\phi(d)\times d\times \dfrac nd=n\phi(n)+\sum\limits_{d|n,d<n}\phi(d)\times d\times \dfrac ndn2=ndnϕ(d)=dnϕ(d)×d×dn=nϕ(n)+dn,d<nϕ(d)×d×dn

nϕ(n)=n2−∑d∣n,d<nϕ(d)×d×ndn\phi(n)=n^2-\sum\limits_{d|n,d<n}\phi(d)\times d\times \dfrac ndnϕ(n)=n2dn,d<nϕ(d)×d×dn

f(d)=dϕ(d)f(d)=d\phi(d)f(d)=dϕ(d)

原式变为

f(n)=n2−∑d∣n,d<nf(d)×ndf(n)=n^2-\sum\limits_{d|n,d<n}f(d)\times \dfrac ndf(n)=n2dn,d<nf(d)×dn

分别求前缀和得

∑i=1nf(n)=∑i=1ni2−∑i=1n∑d∣i,d<if(d)×id\sum\limits_{i=1}^nf(n)=\sum\limits_{i=1}^ni^2-\sum\limits_{i=1}^n\sum\limits_{d|i,d<i}f(d)\times \dfrac idi=1nf(n)=i=1ni2i=1ndi,d<if(d)×di

∑i=1nf(n)=∑i=1ni2−∑d=2nd∑i=1⌊nd⌋f(i)\sum\limits_{i=1}^nf(n)=\sum\limits_{i=1}^ni^2-\sum\limits_{d=2}^nd\sum\limits_{i=1}^{\lfloor \frac nd\rfloor}f(i)i=1nf(n)=i=1ni2d=2ndi=1dnf(i)

F(n)=∑i=1f(i)F(n)=\sum\limits_{i=1}f(i)F(n)=i=1f(i),则

F(n)=n(n+1)(2n+1)6−∑d=2ndF(⌊nd⌋)F(n)=\dfrac{n(n+1)(2n+1)}{6}-\sum\limits_{d=2}^ndF(\lfloor \dfrac nd\rfloor)F(n)=6n(n+1)(2n+1)d=2ndF(⌊dn⌋)

预处理出前n23n^{\frac 23}n32iϕ(i)i\phi(i)iϕ(i),用杜教筛解决,时间复杂度为O(n23)O(n^{\frac 23})O(n32)

code

#include<bits/stdc++.h>
using namespace std;
const int N=2000000;
const long long mod=1000000007;
int z[N+5],p[N+5];
long long ny,ph[N+5],s[N+5];
map<long long,long long>mp;
long long mi(long long t,long long v){if(v==0) return 1;long long re=mi(t,v/2);re=re*re%mod;if(v&1) re=re*t%mod;return re;
}
void init(){ph[1]=1;for(int i=2;i<=N;i++){if(!z[i]){p[++p[0]]=i;ph[i]=i-1;}for(int j=1;j<=p[0]&&i*p[j]<=N;j++){z[i*p[j]]=1;if(i%p[j]==0){ph[i*p[j]]=ph[i]*p[j]%mod;break;}ph[i*p[j]]=ph[i]*(p[j]-1)%mod;}}for(int i=1;i<=N;i++){s[i]=(s[i-1]+ph[i]*i%mod)%mod;}ny=mi(6ll,mod-2);
}
long long djs(int t){if(t<=N) return s[t];if(mp.count(t)) return mp[t];long long re=0;for(int l=2,r;l<=t;l=r+1){r=t/(t/l);re=(re+1ll*(r-l+1)*(r+l)/2%mod*djs(t/l)%mod)%mod;}re=(1ll*t*(t+1)%mod*(2*t+1)%mod*ny%mod-re+mod)%mod;return mp[t]=re;
}
int main()
{int n;init();scanf("%d",&n);printf("1\n%lld",djs(n));return 0;
}

http://www.ppmy.cn/news/11487.html

相关文章

CentOS7下Nginx安装

安装nginx的基本环境部署 1、gcc、 gcc-c 是用来编译下载下来的nginx源码 2、pcre和pcre-devel PCRE(Perl Compatible Regular Expressions) 是一个Perl库&#xff0c;包括 perl 兼容的正则表达式库。 nginx 的 http 模块使用 pcre 来解析正则表达式&#xff0c;pcre-devel 是…

Qt扫盲-Qt QObject模型概述

Qt QObject模型概述一、概述二、 Qt Object Model 类三、Qt对象: Identities vs Value一、概述 标准的c对象模型为对象范式提供了非常高效的运行时支持。但它的静态特性在某些问题领域是不灵活的。图形用户界面编程是一个既需要运行时效率又需要高度灵活性的领域。Qt通过结合c…

java mybatis的SpringBoot博客论坛管理系统

java mybatis的SpringBoot博客论坛管理系统 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

通讯录的实现(详解)(后附完整源代码)

通讯录的实现一.所需要的功能二.大致菜单三.创建通讯录四.增加联系人五.显示联系人六.查找联系人七.删除联系人八.修改联系人九.按名字排序一.所需要的功能 对于通讯录来说&#xff0c;我们需要它实现以下几个功能。 1.人的信息&#xff1a;姓名年龄性别电话地址。 2.可以存放…

【Linux】信号机制(非实时信号)

目录 前言 一.信号的概念以及产生 1.什么是信号 2.信号分为两类 3.查看信号的命令 4.信号如何产生 1).通过软件产生 2).通过硬件产生 3).通过键盘组合键产生 二.信号的发送以及保存 1.信号如何发送 2.信号如何保存 1).概念 2).底层实现结构&&内核中的实现…

微服务自动化管理【docker compose】

1.什么是docker-compose Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排 通过编写docker-compose文件可对多个服务同时进行启动/停止/更新(可定义依赖&#xff0c;按顺序启动服务) docker-compose将所管理的容器分为3层结构&#…

连接查询入门

1、什么是连接查询&#xff1f; 从一张表中查询数据&#xff0c;称为单表查询。 多张表联合起来查询数据&#xff0c;称为连接查询。在实际开发中一般一个业务会对应多张表,所以连接查询使用较多。 2、连接查询的分类&#xff1a; 根据语法的年代分类&#xff1a;SQL92(1992年出…

行云创新受邀出席2023中国(深圳)阿联酋(迪拜)经贸合作交流会

1月10日&#xff0c;2023中国&#xff08;深圳&#xff09;-阿联酋&#xff08;迪拜&#xff09;经贸合作交流会成功举办。本次交流会充分展示了深圳和迪拜两地城市营商环境和政策优势&#xff0c;并围绕科技创新、数字经济、港口物流等领域发展经验展开分享&#xff0c;来自两…