[济南集训 2017] 求gcd之和
题目大意:
求\(\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)\)
解题报告:
有一个结论:一个数的所有因子的欧拉函数之和等于这个数本身
运用这个我们可以开始推:
\(\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)\)
\(\sum_{i=1}^n\sum_{j=1}^m\sum_{d|gcd(i,j)}\phi(d)\)
\(\sum_{i=1}^n\sum_{j=1}^m\sum_{d|i,j}\phi(d)\)
\(\sum_{d=1}^n\phi(d)*(n/d)*(m/d)\)
对于最后一个式子可以数论分块解决,但此题中不需要
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define RG register
#define il inline
#define iter iterator
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
const int N=1e7+5,mod=998244353;
typedef long long ll;
bool vis[N];int prime[N],num=0,n,m;ll sum[N],phi[N];
void solve(){
int to;
phi[1]=1;
for(int i=2;i<=n;i++){
if(!vis[i]){
prime[++num]=i;
phi[i]=i-1;
}
for(int j=1;j<=num && prime[j]*i<=n;j++){
to=i*prime[j];vis[to]=true;
if(i%prime[j])phi[to]=phi[i]*(prime[j]-1)%mod;
else{
phi[to]=phi[i]*prime[j]%mod;
break;
}
}
}
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+phi[i],sum[i]%=mod;
}
void work()
{
cin>>n>>m;
if(n>m)swap(n,m);
solve();
ll ans=0;
RG int j;
for(RG int i=1;i<=n;i=j+1){
j=Min(n/(n/i),m/(m/i));
ans+=((sum[j]-sum[i-1])%mod+mod)%mod*(n/i)%mod*(m/i)%mod;
if(ans>=mod)ans-=mod;
}
printf("%lld\n",ans);
}
int main()
{
freopen("hoip.in","r",stdin);
freopen("hoip.out","w",stdout);
work();
return 0;
}
[济南集训 2017] 求gcd之和的更多相关文章
- cogs 2752. [济南集训 2017] 数列运算
2752. [济南集训 2017] 数列运算 ★★☆ 输入文件:sequenceQBXT.in 输出文件:sequenceQBXT.out 简单对比时间限制:1 s 内存限制:512 ...
- [CodePlus 2017 11月赛]晨跑 题解(辗转相除法求GCD)
[CodePlus 2017 11月赛]晨跑 Description "无体育,不清华"."每天锻炼一小时,健康工作五十年,幸福生活一辈子".在清华,体育运动绝 ...
- Loj 2320.「清华集训 2017」生成树计数
Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\ ...
- [LOJ 6031]「雅礼集训 2017 Day1」字符串
[LOJ 6031] 「雅礼集训 2017 Day1」字符串 题意 给定一个长度为 \(n\) 的字符串 \(s\), \(m\) 对 \((l_i,r_i)\), 回答 \(q\) 个询问. 每个询 ...
- [LOJ 6029]「雅礼集训 2017 Day1」市场
[LOJ 6029] 「雅礼集训 2017 Day1」市场 题意 给定一个长度为 \(n\) 的数列(从 \(0\) 开始标号), 要求执行 \(q\) 次操作, 每次操作为如下四种操作之一: 1 l ...
- loj #2325. 「清华集训 2017」小Y和恐怖的奴隶主
#2325. 「清华集训 2017」小Y和恐怖的奴隶主 内存限制:256 MiB时间限制:2000 ms标准输入输出 题目类型:传统评测方式:文本比较 题目描述 "A fight? Co ...
- 【CJOJ2512】gcd之和(莫比乌斯反演)
[CJOJ2512]gcd之和(莫比乌斯反演) 题面 给定\(n,m(n,m<=10^7)\) 求 \[\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)\] 题解 首先把公因数直 ...
- LOJ_6045_「雅礼集训 2017 Day8」价 _最小割
LOJ_6045_「雅礼集训 2017 Day8」价 _最小割 描述: 有$n$种减肥药,$n$种药材,每种减肥药有一些对应的药材和一个收益. 假设选择吃下$K$种减肥药,那么需要这$K$种减肥药包含 ...
- Loj #2324. 「清华集训 2017」小 Y 和二叉树
Loj #2324. 「清华集训 2017」小 Y 和二叉树 小Y是一个心灵手巧的OIer,她有许多二叉树模型. 小Y的二叉树模型中,每个结点都具有一个编号,小Y把她最喜欢的一个二叉树模型挂在了墙上, ...
随机推荐
- xcode7,ios9 部分兼容设置
神奇的苹果公司,再一次让程序员中枪. 一.xcode7 新建的项目,Foundation下默认所有http请求都被改为https请求. HTTP+SSL/TLS+TCP = HTTPS 也就是说,服务 ...
- appcompat v21: 让 Android 5.0 前的设备支持 Material Design
1. 十大Material Design开源项目 2. appcompat v21: 让 Android 5.0 前的设备支持 Material Design 主题 AppCompat已经支持最新的调 ...
- 第四十六条:for-each循环优先于传统的for循环
for(Elements e : list) { //doSomeThing-- }
- 我所知道的window.location
多说无益 直接上干货 假如一个地址为 http://127.0.0.1:5000/index.html?id=4 window.location.href -- 完整路径 -- http://127 ...
- php的开发的apache的配置及伪静态的应用
1.Apache之所以能够解析php代码是游览器首先发送数据到模版页面,然后模版页提交数据到php页面,然后php代码经过Apache解析过后生成结果的,所以是 在Apache的配置文件中是可以看到开 ...
- ASP.NET 访问项目网站以外的目录文件
简单的说,可以通过在 IIS 添加虚拟目录的方法做到,获取访问路径的时候就用 HttpContext.Current.Server.MapPath("~/xxx"); 的方式. 下 ...
- web api 如何通过接收文件流的方式,接收客户端及前端上传的文件
服务端接收文件流代码: public async Task<HttpResponseMessage> ReceiveFileByStream() { var stream = HttpCo ...
- PHP常见排序算法
$a = [1, 3, 5, 2, 4, 6, 12, 60, 45, 10, 32];$len = count($a);$num=0;/* * 冒泡排序 * 原理:不停的对相邻两个数进行比较,直到最 ...
- SpringBoot入门:Spring Data JPA 和 JPA(理论)
参考链接: Spring Data JPA - Reference Documentation Spring Data JPA--参考文档 中文版 纯洁的微笑:http://www.ityouknow ...
- Mysql官方文档翻译系列14.18--MySql备份与恢复
原文链接: (https://dev.mysql.com/doc/refman/5.7/en/innodb-backup-recovery.html) The key to safe database ...