LOJ528 「LibreOJ β Round #4」求和
LOJ528 「LibreOJ β Round #4」求和
先按照最常规的思路推一波:
&\sum_{i=1}^n\sum_{j=1}^m\mu^2(\gcd(i,j))\\
=&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=d]\\
=&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{t=1}^{\min(n,m)}\mu(t)\lfloor \frac{n}{dt}\rfloor \lfloor \frac{m}{dt}\rfloor\\
=&\sum_{x=1}^{\min(n,m)}\lfloor \frac{n}{x}\rfloor \lfloor \frac{m}{x}\rfloor\sum_{d|x}\mu^2(d)\mu(\frac x d)
\end{aligned}
\]
然后后面这个东西一定是个积性函数,所以可以求出质数及其幂次上的的值,最后整除分块即可。
然后有另一种更为简洁的思路:
有反演公式 \(\mu^2(x)=\sum_{d^2|x}\mu(d)\)。
考虑证明。
若 \(x\) 为 \(\texttt{square_free numbers}\),即其无平方因子,则 \(d\) 只能取 \(1\),显然成立。
若 \(x\) 有 \(\texttt{square_free numbers}\),即其有平方因子,则左边显然为 \(0\)。
设其含有某个平方因子 \(p_k\)。
则对于所有的 \(d^2\),其中若 \(d\) 含有 \(p^2\),其对答案的贡献为 \(0\)。
否则 \(d\) 含有 \(p\) 或不含 \(p\),显然这两种情况的个数相同,且根据莫比乌斯函数的定义,对于答案的贡献恰好相反,也就是贡献和为 \(0\)。
所以有
&\sum_{i=1}^n\sum_{j=1}^m\mu^2(\gcd(i,j))\\
=&\sum_{i=1}^n\sum_{j=1}^m\sum_{d^2|\gcd(i,j)}\mu(d)\\
\end{aligned}
\]
然后你发现我们只需要找到 \(\gcd(i,j)\) 为完全平方数或其倍数的数,所以我们直接枚举就好了。
/*---Author:HenryHuang---*/
/*---Never Settle---*/
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll maxn=4e6+5;
const ll mod=998244353;
ll P;
ll pri[maxn],mu[maxn],p[maxn],cnt;
void init(){
mu[1]=1;
for(ll i=2;i<=P;++i){
if(!p[i]) pri[++cnt]=i,mu[i]=-1;
for(ll j=1;j<=cnt&&pri[j]*i<=P;++j){
p[pri[j]*i]=1;
if(i%pri[j]==0){
mu[pri[j]*i]=0;
break;
}
else mu[pri[j]*i]=-mu[i];
}
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
ll n,m;cin>>n>>m;
if(n<m) swap(n,m);P=sqrt(n+0.5);init();
ll ans=0;
for(ll i=1;1ll*i*i<=n;++i){
if(!mu[i]) continue;
ll x=i*i;
ans=(ll)(ans+mu[i]*(1ll*(n/x)%mod*((m/x)%mod))%mod+mod)%mod;
}
cout<<ans<<'\n';
return 0;
}
LOJ528 「LibreOJ β Round #4」求和的更多相关文章
- LibreOJ #528. 「LibreOJ β Round #4」求和
二次联通门 : LibreOJ #528. 「LibreOJ β Round #4」求和 /* LibreOJ #528. 「LibreOJ β Round #4」求和 题目要求的是有多少对数满足他们 ...
- Loj #528. 「LibreOJ β Round #4」求和 (莫比乌斯反演)
题目链接:https://loj.ac/problem/528 题目:给定两个正整数N,M,你需要计算ΣΣu(gcd(i,j))^2 mod 998244353 ,其中i属于[1,N],j属于[1,M ...
- loj#528. 「LibreOJ β Round #4」求和
求:\(\sum_{i=1}^n\sum_{j=1}^m\mu(gcd(i,j))^2\) 化简可得\(\sum_{i=1}^{min(n,m)}{\lfloor \frac{n}{i} \rfloo ...
- 「LibreOJ β Round #4」求和
https://loj.ac/problem/528 1 , d =1 μ(d)= (-1)^k , d=p1*p2*p3*^pk pi为素数 0 ...
- loj #547. 「LibreOJ β Round #7」匹配字符串
#547. 「LibreOJ β Round #7」匹配字符串 题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...
- [LOJ#531]「LibreOJ β Round #5」游戏
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...
- [LOJ#530]「LibreOJ β Round #5」最小倍数
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...
- [LOJ#516]「LibreOJ β Round #2」DP 一般看规律
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...
- [LOJ#515]「LibreOJ β Round #2」贪心只能过样例
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...
随机推荐
- WEB安全防护相关响应头(上)
WEB 安全攻防是个庞大的话题,有各种不同角度的探讨和实践.即使只讨论防护的对象,也有诸多不同的方向,包括但不限于:WEB 服务器.数据库.业务逻辑.敏感数据等等.除了这些我们惯常关注的方面,WEB ...
- Mobileye 自动驾驶策略(一)
Mobileye 自动驾驶策略(一) 详解 Mobileye 自动驾驶解决方案 Mobileye的自动驾驶解决方案.总得来说,分为四种: Visual perception and sensor fu ...
- MindArmour差分隐私
MindArmour差分隐私 总体设计 MindArmour的Differential-Privacy模块,实现了差分隐私训练的能力.模型的训练主要由构建训练数据集.计算损失.计算梯度以及更新模型参数 ...
- TinyML设备设计的Arm内核
TinyML设备设计的Arm内核 Arm cores designed for TinyML devices Arm推出了两个新的IP核,旨在为终端设备.物联网设备和其低功耗.成本敏感的应用程序提供机 ...
- JUC 并发编程--10, 阻塞队列之--LinkedBlockingDeque 工作窃取, 代码演示
直接上代码 class LinkedBlockingDequeDemo { // 循环是否结束的开关 private static volatile boolean flag1 = true; pri ...
- SpringBoot基础系列之自定义配置源使用姿势实例演示
[SpringBoot基础系列]自定义配置源的使用姿势介绍 前面一篇博文介绍了一个@Value的一些知识点,其中提了一个点,@Value对应的配置,除了是配置文件中之外,可以从其他的数据源中获取么,如 ...
- 使用charles抓取https的方法
自己整理的步骤做个记录 1.下载证书,官方地址:http://www.charlesproxy.com/ssl.zip 可直接点击链接下载:http://charlesproxy.com/getssl ...
- js02
一.<thead></thead>,<tbody></tbody>:为了使表头和表格内容分开设置样式 1.tbody里边有一个rows.length,获 ...
- 『无为则无心』Python基础 — 4、Python代码常用调试工具
目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...
- Java的一些细节语法(不定时更新。。。)
可信考试Java相关题目 目录 可信考试Java相关题目 ConcurrentHashMap不允许key为null,但是HashMap是可以的.TreeMap key不支持null. 以下代码里面,请 ...