传送门

原来……莫比乌斯反演是这么用的啊……(虽然仍然不是很明白)

首先,题目所求如下$$\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=prim]$$

我们设$f(d)$表示$gcd(i,j)=d$的$(i,j)$的对数,$g(d)$表示存在公因数为$d$的$(i,j)$的对数

那么就有$$f(d)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=d]$$

$$g(d)=\sum_{d|k}f(k)=\lfloor\frac{N}{d}\rfloor\lfloor\frac{M}{d}\rfloor$$

那么根据莫比乌斯反演定理,则有$$f(n)=\sum_{n\mid d}\mu(\frac{d}{n})g(d)$$

然后就可以化简了$$ans=\sum_{p\in prim}\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=p]$$

将$f(p)$代入,得$$ans=\sum_{p\in prim}f(p)$$

$$ans=\sum_{p\in prim}\sum_{p\mid d}\mu(\frac{d}{p})g(d)$$

我们考虑换一个枚举项,不枚举$p$,枚举$\frac{d}{p}$

$$ans=\sum_{p\in prim}\sum_{d=1}^{min(\lfloor\frac{n}{p}\rfloor,\lfloor\frac{m}{p}\rfloor)}\mu(d)g(dp)\\=\sum_{p\in prim}\sum_{d=1}^{min(\lfloor\frac{n}{p}\rfloor,\lfloor\frac{m}{p}\rfloor)}\mu(d)\lfloor\frac{n}{dp}\rfloor\lfloor\frac{m}{dp}\rfloor$$

然后我们把$dp$给换成$T$

$$ans=\sum_{T=1}^{min(n,m)}\sum_{t|T,t\in prim}\mu(\lfloor\frac{T}{t}\rfloor)\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor$$

$$ans=\sum_{T=1}^{min(n,m)}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor(\sum_{t|T,t\in prim}\mu(\lfloor\frac{T}{t}\rfloor))$$

然后对$(\sum_{t\mid T,t\in prim}\mu(\frac{T}{t}))$求一个前缀和,就好了

这数学公式真的是打的我心力憔悴……

 1 //minamoto
 2 #include<cstdio>
 3 #define ll long long
 4 //#define min(a,b) ((a)<(b)?(a):(b))
 5 inline int min(int a,int b){return a<b?a:b;}
 6 const int N=1e7+5;
 7 int vis[N],mu[N],p[N],g[N],m;ll sum[N],ans;
 8 void init(int n){
 9     mu[1]=1;
10     for(int i=2;i<=n;++i){
11         if(!vis[i]) p[++m]=i,mu[i]=-1;
12         for(int j=1;j<=m&&p[j]*i<=n;++j){
13             vis[i*p[j]]=1;
14             if(i%p[j]==0) break;
15             mu[i*p[j]]=-mu[i];
16         }
17     }
18     for(int j=1;j<=m;++j)
19     for(int i=1;i*p[j]<=n;++i)
20     g[i*p[j]]+=mu[i];
21     for(int i=1;i<=n;++i)
22     sum[i]=sum[i-1]+g[i];
23 }
24 int main(){
25 //    freopen("testdata.in","r",stdin);
26     init(1e7);
27     int T;scanf("%d",&T);
28     while(T--){
29         int n,m;
30         scanf("%d%d",&n,&m);
31         if(n>m) n^=m^=n^=m;
32         ans=0;
33         for(int l=1,r;l<=n;l=r+1){
34             r=min(n/(n/l),m/(m/l));
35             ans+=1ll*(n/l)*(m/l)*(sum[r]-sum[l-1]);
36         }
37         printf("%lld\n",ans);
38     }
39     return 0;
40 }

转载于:https://www.cnblogs.com/bztMinamoto/p/9688510.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. 洛谷P2257 YY的GCD

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

  4. 洛谷 P2257 YY的GCD

    YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定\(N\), \(M\) ,求\(1 \le x \le N,1 \le y \le M\)且\(gcd(x, y)\)为质数的\( ...

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

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

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

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

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

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

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

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

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

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

  10. YY的GCD 莫比乌斯反演

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

最新文章

  1. 啥?修改下 URL 就能高速下载网盘资源和百度文库?
  2. SSD成就了《扩散性百万亚瑟王》
  3. 下qemu模拟arm9_QEMU搭建树莓派环境
  4. 居中符号怎么打_小学语文标点符号的正确书写格式(附图文展示),让孩子牢记考试不丢分!...
  5. 【开通指南】 实时计算 Flink 全托管版本
  6. tcp协议的主要功能是什么_计算机网络 | 一文搞懂什么是TCP/IP协议
  7. Linux下如何查看哪些进程占用的CPU内存资源最多
  8. 实现拷贝函数(strcpy)
  9. Subscription
  10. android开发那些事儿(四)--调用系统相机像素过低
  11. 让Swing表格支持远程后台数据翻页
  12. 并发编程之多线程基础-Thread和Runnable的区别及联系(二)
  13. 聚类分析软件操作流程
  14. 堪称神器的图片无损放大缩小工具
  15. 快速掌握阿里云 OSS
  16. python 月初 月末
  17. apk反编译(6)用ProGuard 混淆、压缩代码,压缩资源。
  18. SHA与MD5算法的区别
  19. 笔记③:牛客校招冲刺集训营---C++工程师(5.9 C++新特性)
  20. 迟来的2020年度总结,顺带附上被鸽了很久的自我介绍

热门文章

  1. 参考文献顺序_科技论文参考文献的著录规则及存在问题
  2. php $stomp write byte message,PHP通过Stomp协议与,ActiveMQ,通信所遇到的问题
  3. python编写命令行框架_Python2和3的面向命令的命令行框架是什么?
  4. python字符串转换成数字_python – Jinja将字符串转换为整数
  5. python浮点数多少位_Python中的最大浮点数是多少?
  6. 凸优化有关的数值线性代数知识 3LU Cholesky和LDL因式分解
  7. 2015年10月22日22:38:46
  8. 计算机网络超详细笔记(六):传输层
  9. PHP调整网页,用PHP程序实现支持页面后退的两种方法
  10. 看完不后悔系列,SQL语句执行慢怎么办,原因总结!!