[题目链接] https://www.luogu.org/problemnew/show/P2257

// luogu-judger-enable-o2
/*
-----------------------
[题解]
https://www.luogu.org/blog/peng-ym/solution-p2257
[莫比乌斯反演]
http://www.cnblogs.com/peng-ym/p/8647856.html
[整除分块]
http://www.cnblogs.com/peng-ym/p/8661118.html
-----------------------
前置:莫比乌斯函数μ(x)为一次质因子的个数,其中μ(1)=1
化简式子中有几个地方很巧妙
1.设f(n)为gcd(i,j)=n的方案数,F(n)=∑{n|d}(f(d))=(N/n)*(M/n)
2.更换枚举项:由枚举 p 到枚举 (d/p) ,总之枚举 μ ,方便算前缀和
3.由枚举 dp 到枚举 T, 根据 μ(d) 有关计算从所有 d 的 p 倍的式子, 转化为根据 μ(T/t) 计算所有有关 T 的式子.
4.程序实现时运用整除分块,即变量在[l,r]内代入式子算得结果一样
-----------------------
written by pengym.
-----------------------2019.2.11
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF=1e9+7;
inline LL read(){register LL x=0,f=1;register char c=getchar();while(c<48||c>57){if(c=='-')f=-1;c=getchar();}while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar();return f*x;
}const int MAXN=1e7+5;int mu[MAXN],prime[MAXN],g[MAXN];
bool vis[MAXN];
LL sum[MAXN],ans;
int n,m,Pcnt,T;inline void init(int n){mu[1]=1;for(int i=2;i<=n;i++){if(!vis[i]){prime[++Pcnt]=i;mu[i]=-1;}for(int j=1;j<=Pcnt&&prime[j]*i<=n;j++){vis[i*prime[j]]=true;if(i%prime[j]==0) break;else mu[prime[j]*i]=-mu[i];}}prime[0]=1;for(int j=1;j<=Pcnt;j++)for(int i=0;i*prime[j]<=n;i++)g[i*prime[j]]+=mu[i];//对∑(μ)的计算for(int i=1;i<=n;i++)sum[i]=sum[i-1]+g[i];//前缀和
}int main(){init(1e7);T=read();while(T--){n=read(),m=read();ans=0;if(n>m) swap(n,m);for(int l=1,r;l<=n;l=r+1){r=min(n/(n/l),m/(m/l));//变量在[l,r]内代入式子算得结果一样ans+=(LL)(n/l)*(m/l)*(sum[r]-sum[l-1]);//记得加(LL)!!!}printf("%lld\n",ans);}
}

转载于:https://www.cnblogs.com/lizehon/p/10390179.html

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) 有多少对. ...

最新文章

  1. 中国首次!2021年图计算挑战赛揭榜,华中科技大团队夺冠
  2. SpringBoot学习之@Configuration注解和@Bean注解
  3. docker mysql镜像连接不上_Mysql安装-Docker版
  4. React v15.0 正式版发布
  5. 输出控制台信息到日志 并 通过cronolog对tomcat进行日志切分
  6. Linux Kernel系列 - 黄牛X内核代码凝视
  7. ORACLE查询表最近更改的数据
  8. 嵌入式linux设计师,make在linux——《嵌入式linux设计与应用》
  9. oracle查询哪些数据未压缩,求助大佬:向压缩表插入数据,压缩未生效
  10. 基于一款 wk2168芯片的串口扩展
  11. (95)FPGA二四译码器设计,面试必问(十九)(第19天)
  12. 安装SQL Server 那些事儿
  13. CKEditor 5 v19.1.1 发布,新增导出为 PDF 功能
  14. Google Maps API v3:如何删除所有标记?
  15. android 巧用资源文件(不断积累)
  16. struts2登录注册示例_Struts 2控制标签示例教程
  17. BP神经网络模型与学习算法
  18. 游戏开发之类和对象的基本概念(C++基础)
  19. 深度前馈神经网络_深度前馈神经网络简介
  20. java excel通用导入类_java excel 文件导入通用接口

热门文章

  1. nginx启动报错:Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' fo
  2. python【数据结构与算法】程序设计:划分整数(DP)
  3. 机器学习(MACHINE LEARNING)从零搭建一个汽车状态分类器(Tensorflow)
  4. python【蓝桥杯vip练习题库】ADV-281特等奖学金
  5. Tensorflow【实战Google深度学习框架】—完整的TensorFlow入门教程
  6. Comet oj比赛组队
  7. 01背包【动态规划】
  8. Android之Pull解析XML
  9. java packetmaster_TCP中间件_java_server
  10. css画横线箭头_用CSS绘制三角形箭头