正题

题目链接:https://www.luogu.com.cn/problem/P2257


题目大意

给出n,mn,mn,m,求∑i=1n∑j=1m[gcd(i,j)∈p]\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)\in p]i=1∑n​j=1∑m​[gcd(i,j)∈p]

定义ppp是质数集


解题思路

首先考虑定义f(x)=∑i=1n∑j=1m[gcd(i,j)==x]f(x)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==x]f(x)=i=1∑n​j=1∑m​[gcd(i,j)==x]
然后有F(x)=∑d∣xf(x)=⌊nx⌋⌊mx⌋F(x)=\sum_{d|x}f(x)=\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{x}\rfloorF(x)=∑d∣x​f(x)=⌊xn​⌋⌊xm​⌋
根据莫比乌斯反演就有f(d)=∑i∣dμ(id)F(d)f(d)=\sum_{i|d}\mu(\frac{i}{d})F(d)f(d)=i∣d∑​μ(di​)F(d)即f(d)=∑i∣dμ(id)⌊nx⌋⌊mx⌋f(d)=\sum_{i|d}\mu(\frac{i}{d})\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{x}\rfloorf(d)=i∣d∑​μ(di​)⌊xn​⌋⌊xm​⌋枚举质数ppp
然后有ans=∑pn∑d=1nμ(d)⌊npd⌋⌊mpd⌋ans=\sum_{p}^{n}\sum_{d=1}^{n}\mu(d)\lfloor\frac{n}{pd}\rfloor\lfloor\frac{m}{pd}\rfloorans=p∑n​d=1∑n​μ(d)⌊pdn​⌋⌊pdm​⌋
⇒ans=∑in⌊ni⌋⌊mi⌋∑d∣iμ(id)\Rightarrow ans=\sum_{i}^{n}\lfloor \frac{n}{i}\rfloor\lfloor \frac{m}{i}\rfloor\sum_{d|i}\mu(\frac{i}{d})⇒ans=i∑n​⌊in​⌋⌊im​⌋d∣i∑​μ(di​)

预处理∑d∣iμ(id)\sum_{d|i}\mu(\frac{i}{d})∑d∣i​μ(di​)的前缀和即可。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e7+10;
int T,n,m,cnt;
int pri[N],mu[N],g[N];
long long ans;
bool vis[N];
void prime(){mu[1]=1;for(int i=2;i<N;i++){if(!vis[i])mu[i]=-1,pri[++cnt]=i;for(int j=1;j<=cnt&&pri[j]*i<N;j++){vis[i*pri[j]]=1;if(i%pri[j]==0)break;mu[i*pri[j]]=-mu[i];}}for(int j=1;j<=cnt;j++)for(int i=1;pri[j]*i<N;i++)g[i*pri[j]]+=mu[i];for(int i=1;i<N;i++)g[i]+=g[i-1];return;
}
int main()
{prime();scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);if(n>m)swap(n,m);ans=0;for(int l=1,r;l<=n;l=r+1){r=min(n/(n/l),m/(m/l));ans+=1ll*(n/l)*(m/l)*(g[r]-g[l-1]);}printf("%lld\n",ans);}
}

P2257-YY的GCD【莫比乌斯反演】相关推荐

  1. [洛谷P2257] YY的GCD (莫比乌斯反演)

    YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...

  2. 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛

    洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...

  3. [Luogu P2257] YY的GCD (莫比乌斯函数)

    题面 传送门:洛咕 Solution 推到自闭,我好菜啊 显然,这题让我们求: \(\large \sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)\in prime]\) 根 ...

  4. BZOJ 2820 YY的GCD 莫比乌斯反演

    2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...

  5. 【bzoj2820】YY的GCD 莫比乌斯反演

    题目描述 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是 ...

  6. BZOJ 2820 YY的GCD 莫比乌斯反演

    题意:链接 方法:莫比乌斯反演 解析: 这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力.只是当你A掉这道题后发现正解?都将近5s时.就放弃了这个念头. 相同的式子我们能够直接搬过来.p ...

  7. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  8. YY的GCD 莫比乌斯反演

    ---题面--- 题解: $ans = \sum_{x = 1}^{n}\sum_{y = 1}^{m}\sum_{i = 1}^{k}[gcd(x, y) == p_{i}]$其中k为质数个数 $$ ...

  9. P2257 YY的GCD

    P2257 YY的GCD 题意: 求 1≤x≤N,1≤y≤M1 \leq x \leq N,1 \leq y \leq M1≤x≤N,1≤y≤M 且gcd(x, y) 为质数的 (x,y) 有多少对. ...

  10. P2257 YY的GCD (莫比乌斯反演)

    [题目链接] https://www.luogu.org/problemnew/show/P2257 // luogu-judger-enable-o2 /* -------------------- ...

最新文章

  1. windows10 mysql 5.5.36 安装
  2. 毛概 第二章新民主主义革命理论
  3. P5714 【深基3.例7】肥胖问题--python3实现
  4. 发卡网源码 去后门 可以扩展码支付
  5. 【Linuxamp;Unix--open/close/write/read系统调用】
  6. zabbix 之 配置iptables允许10050端口
  7. Java Web之基于注解的Spring MVC环境配置
  8. 数据库基础入门知识总结
  9. Thingworx入门学习
  10. 懒人——支付宝app支付
  11. CentOS 配置DHCPv6
  12. 超全必看!开源时间序列数据集整理
  13. PPT文字怎样做断开效果和穿透效果
  14. 5分钟看懂XCP协议
  15. Elastic 7.13.0 版重磅发布:在 Elastic 上搜索和存储更多数据
  16. 英语黑色幽默IT段子
  17. 【大厂面试】智力题怎么破?
  18. Unity添加自发光材质
  19. 平头哥剑池CDK 更新重磅来袭!三大亮点速看!
  20. 固定表头和第一列、内容可滚动的table表格

热门文章

  1. spring 单例 获取多例的位_Spring系列第6篇:玩转bean scope,避免跳坑里!
  2. 软件开发有哪些规范和标准_深圳APP软件开发的流程是什么?
  3. java定时器报错,定时器设置报错
  4. 登录服务器修改数据库吗,如何修改服务器登录数据库 sa
  5. 多个cpp文件生成so_boostpython:从多个.cpp文件创建一个模块(.so)
  6. 程序显示文本框_【教程】TestComplete测试桌面应用程序教程(二)
  7. java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
  8. linux磁盘写保护怎么修改_mount: /dev/vdb 写保护,将以只读方式挂载
  9. northstar机器人编程_《机器人构建实战》——导读
  10. mysql 固定符号分列显示_MySql中指定符号分割并分行展示