p8670题解

题目:求 $\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)$ 的值。

推式子

∑ i = 1 n ∑ j = 1 n gcd ⁡ ( i , j ) 2 \sum_{i=1}^n\sum_{j=1}^n\gcd\left(i,j\right)^2 i=1nj=1ngcd(i,j)2
= ∑ i = 1 n ∑ j = 1 n ∑ k = 1 n k 2 × [ gcd ⁡ ( i , j ) = = k ] =\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^nk^2\times\left[\gcd(i,j)==k\right] =i=1nj=1nk=1nk2×[gcd(i,j)==k]
= ∑ k = 1 n k 2 ∑ i = 1 n ∑ j = 1 n gcd ⁡ ( i , j ) =\sum_{k=1}^nk^2\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j) =k=1nk2i=1nj=1ngcd(i,j)
= ∑ k = 1 n k 2 ( 2 ∑ i = 1 ⌊ n k ⌋ φ ( i ) − 1 ) =\sum_{k=1}^nk^2\left(2\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\varphi(i)-1\right) =k=1nk2 2i=1knφ(i)1

代入杜教筛公式。
= ∑ k = 1 n k 2 ( n 2 + n − ∑ i = 2 n S ( ⌊ n i ⌋ ) ) =\sum_{k=1}^nk^2\left(n^2+n-\sum_{i=2}^n S\left(\lfloor\dfrac{n}{i}\rfloor\right)\right) =k=1nk2(n2+ni=2nS(in))

实现

先用欧拉筛筛出前 K K K 个,再求。
复杂度 Θ ( K + n K ) = Θ ( n 2 3 ) \Theta\left(K+\dfrac{n}{\sqrt{K}}\right) = \Theta(n^{\frac{2}{3}}) Θ(K+K n)=Θ(n32).

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1000000007;
unordered_map<int, int>mp;
int K = 10000;
int s[500010];
inline int S(int x) {if (x <= K)return s[x];//预处理if (mp.find(x) != mp.end())return mp[x];//记忆化int j = 0;int ans = 1ll * (x) * (x + 1) / 2;for (int i = 2; i <= x; i = j + 1) {j = x / (x / i);//数论分块ans -= (j - i + 1) * S(x / i);//个数*每个的值}return mp[x] = (ans % mod);
}
int primes[500010];
int cnt;
bool st[500010];
inline void init() {//欧拉筛求欧拉函数s[1] = 1;for (int i = 2; i <= K; i++) {if (!st[i]) {primes[cnt++] = i;s[i] = i - 1; //质数前面所有数都互质}for (int j = 0; primes[j] <= K / i; j++) {int t = primes[j] * i;st[t] = true;if (i % primes[j] == 0) {s[t] = primes[j] * s[i];break;}s[t] = s[i] * (primes[j] - 1);}}for (int i = 1; i <= K; i++)s[i] += s[i - 1], s[i] %= mod;
}
signed main() {int n;cin >> n;init();int ans = 0;for (int i = 1; i <= n; ++i)ans = (ans + ((i * i) % mod * ( (S(n / i) << 1) % mod - 1 )) % mod) % mod;//公式cout << ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity学习(70)——编译游戏发生错误2

1.全屏问题其实无所谓&#xff0c;windows用tab可以切出来的。 2.现在主要问题是服务器try了以后虽然不崩溃了&#xff0c;但不再显示2个实例对象了&#xff0c;unity和exe此时都只能看到一个实例对象 2.1把之前报错位置的try-catch先注释掉 2.2 unity中此时登录666账号&…

leetcode代码记录(完全二叉树的节点个数

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层…

洛谷_P5019 [NOIP2018 提高组] 铺设道路_python写法

P5019 [NOIP2018 提高组] 铺设道路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) n int(input()) data list(map(int,input().split()))ans 0 for i in range(1,n):if data[i]>data[i-1]:ans data[i]-data[i-1]print(ansdata[0])

python在运行时控制台以表格形式输出结果prettytable.PrettyTable()

使用prettytable库按表格的形式美化输出结果 效果如图&#xff1a; 表格中可接收列表格式的数据&#xff0c;列表中装字符串 # 引入模块 import prettytable as pt# 创建表格与表头&#xff0c;包含五列&#xff0c;分别为train-epoch&#xff0c;class&#xff0c;precisio…

C语言内存函数(下)---memset和memcmp的使用,自定义类型:结构体(上)

memset的使用&#xff1a;它的返回类型是void*&#xff0c;它的表达式为&#xff1a;void * memset ( void * ptr, int value, size_t num );它所表达的意思是&#xff1a;以字节为单位&#xff0c;把子符变成想要的模样&#xff0c;它的头文件是<string.h>,它的代码为&a…

Day02-DDLDMLDQL(定义,操作,查询)(联合查询,子查询,字符集和校对集,MySQL5.7乱码问题)

文章目录 Day02-DDL&DML和DQL学习目标1. SQL语言的组成2. DDL2.1 数据库结构2.2 表结构2.3 约束2.3.1 主键约束(重要)(1)特点(2) 添加主键(3)删除主键(了解) 2.3.2 自增约束(1)特点(2) 添加自增约束(3)删除自增约束(了解) 2.3.3 非空约束(1)添加非空约束(2) 删除非空约束 2…

Midjourney辞典AIGC中英双语图文辞典+Midjourney提示关键词

完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077

javaSwing坦克大战游戏

在游戏开发领域&#xff0c;坦克大战是一款经典的游戏&#xff0c;其简单而又耐玩的玩法吸引了无数玩家。而今&#xff0c;在Java编程技术的支持下&#xff0c;我们可以用Java Swing技术轻松实现这款经典游戏。本文将介绍如何使用Java Swing技术编写坦克大战游戏&#xff0c;并…

【Java程序设计】【C00352】基于Springboot的疫情隔壁酒店管理系统(有论文)

基于Springboot的疫情隔壁酒店管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 &#x1f345;文末点击卡片获取源码&#x1f345; 开发环境 运行环境&#xff1a;推荐jdk1.8&#xff1b; 开发工具&#xff1a;eclipse以…

VS code中安装了git插件,报错无法使用怎么办?

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端程序媛。 1枚程序媛&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得❤️&#xff0c;和你一起慢慢变富。 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中 后台…

BaseDao的增删改查【入门级】

文章目录 一.BaseDao是什么BaseDao的特性 二.BaseDao的操作1.第一步创建名叫BaseDao的类2.开始实现数据库与Java的连接3. 查询的操作4. 增删改的操作5.关闭数据库 一.BaseDao是什么 BaseDao是为了解决数据库中增删改查而的提供的一个定义类&#xff0c;是一个接口代码&#xf…

如何在Linux Ubuntu系统安装Nginx服务并实现无公网IP远程连接

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中&#xff0c;公网远程访问内网是其必备的技术需求之一。对于…

【Java程序设计】【C00387】基于(JavaWeb)Springboot的校园食堂订餐系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园食堂订餐系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

【LeetCode: 2580. 统计将重叠区间合并成组的方案数 + 合并区间】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

FPGA 图像处理模块输出端恢复场同步信号Verilog代码

根据输出端有效数据信号计数恢复 reg out_x_cnt;reg out_y_cnt;always (posedge clk or negedge reset) beginif (!reset) beginout_x_cnt < 0;out_y_cnt < 0;end else beginout_x_cnt < valid_o ? ((out_x_cnt img_width - 1) ? 0 : out_x_cnt 1) : out_data_cnt…

基于Springboot的疫情隔离酒店管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的疫情隔离酒店管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

4个AI智能写作平台,为你解决文章写作问题

在信息时代&#xff0c;写作是一项重要的技能&#xff0c;无论是在学术领域还是商务环境中。然而&#xff0c;对于许多人来说&#xff0c;写作并不是一件轻松的事情。但是&#xff0c;随着人工智能的发展&#xff0c;有许多AI智能写作平台可以帮助我们解决文章写作问题。在本文…

外包干了5年,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

【MySQL】11. 复合查询(重点)

4. 子查询 子查询是指嵌入在其他sql语句中的select语句&#xff0c;也叫嵌套查询 4.1 单行子查询 返回一行记录的子查询 显示SMITH同一部门的员工 mysql> select * from emp where deptno (select deptno from emp where ename SMITH); -----------------------------…

Google AI 肺癌筛查的计算机辅助诊断

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…