Sol

推导:\(n<m,p为质数\)
\(ans=\sum_p\sum_{i=1}^{\frac{n}{p}}\mu(i)\frac{n}{pi}\frac{m}{pi}\)
\(=\sum_{k=1}^{n}\frac{n}{k}\frac{m}{k}\sum_{p|k}\mu(\frac{k}{p})\)
\(\sum_{p|k}\mu(\frac{k}{p})\)可以暴力预处理,也可以在筛的时候计算出

暴力求

# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Zsydalao 666
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(1e7 + 1);IL ll Read(){char c = '%'; ll x = 0, z = 1;for(; c > '9' || c < '0'; c = getchar()) if(c == '-') z = -1;for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0';return x * z;
}int prime[_], num, mu[_], f[_];
bool isprime[_];IL void Prepare(){isprime[1] = 1; mu[1] = 1;for(RG int i = 2; i < _; ++i){if(!isprime[i]) prime[++num] = i, mu[i] = -1;for(RG int j = 1; j <= num && i * prime[j] < _; ++j){isprime[i * prime[j]] = 1;if(i % prime[j])  mu[i * prime[j]] = -mu[i];else{  mu[i * prime[j]] = 0; break;  }}}for(RG int i = 1; i < _; ++i)for(RG int j = 1; j <= num && i * prime[j] < _; ++j)f[i * prime[j]] += mu[i];for(RG int i = 1; i < _; ++i) f[i] += f[i - 1];
}int main(RG int argc, RG char *argv[]){Prepare();for(RG int T = Read(); T; --T){RG ll n = Read(), m = Read(), ans = 0;if(n > m) swap(n, m);for(RG ll k = 1, j; k <= n; k = j + 1){j = min(n / (n / k), m / (m / k));ans += (n / k) * (m / k) * (f[j] - f[k - 1]);}printf("%lld\n", ans);}return 0;
}

筛的时候处理

# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Zsydalao 666
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(1e7 + 1);IL ll Read(){char c = '%'; ll x = 0, z = 1;for(; c > '9' || c < '0'; c = getchar()) if(c == '-') z = -1;for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0';return x * z;
}int prime[_], num, mu[_], f[_];
bool isprime[_];IL void Prepare(){isprime[1] = 1; mu[1] = 1;for(RG int i = 2; i < _; ++i){if(!isprime[i]) prime[++num] = i, mu[i] = -1, f[i] = 1;for(RG int j = 1; j <= num && i * prime[j] < _; ++j){isprime[i * prime[j]] = 1;if(i % prime[j])  mu[i * prime[j]] = -mu[i], f[i * prime[j]] = mu[i] - f[i];else{  mu[i * prime[j]] = 0; f[i * prime[j]] = mu[i]; break;  }}}for(RG int i = 1; i < _; ++i) f[i] += f[i - 1];
}int main(RG int argc, RG char *argv[]){Prepare();for(RG int T = Read(); T; --T){RG ll n = Read(), m = Read(), ans = 0;if(n > m) swap(n, m);for(RG ll k = 1, j; k <= n; k = j + 1){j = min(n / (n / k), m / (m / k));ans += (n / k) * (m / k) * (f[j] - f[k - 1]);}printf("%lld\n", ans);}return 0;
}

转载于:https://www.cnblogs.com/cjoieryl/p/8288744.html

BZOJ2820:YY的GCD相关推荐

  1. [ bzoj2820] YY的GCD

    [ bzoj2820] YY的GCD Time Limit : 3000 ms Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<= ...

  2. Bzoj-2820 YY的GCD Mobius反演,分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2820 题意:多次询问,求1<=x<=N, 1<=y<=M且gcd( ...

  3. bzoj2820: YY的GCD

    题意 给定\(n,m(1 \leqslant n,m \leqslant 10000000)\),求\(1\leqslant x \leqslant n\), \(1 \leqslant y \leq ...

  4. [BZOJ2820]YY的GCD

    题目大意: 对于给定的$n,m(n,m\leq10^7)$,求$为质数\displaystyle\sum_{x=1}^n\sum_{y=1}^m[\gcd(x,y)为质数]$. 思路: 设$p=\gc ...

  5. bzoj2820 [bzoj2820]YY的GCD(线性素数筛+莫比乌斯反演)

    求gcd(i,j)为质数的个数.即 ∑p∑i=1n∑j=1mgcd(i,j)==p \sum\limits_p\sum\limits_{i=1}^n\sum\limits_{j=1}^mgcd(i,j ...

  6. 【莫比乌斯反演】BZOJ2820 YY的GCD

    题面在这里 与这道题类似. 先考虑枚举质数p,答案就是: ∑p∑dμ(d)⌊npd⌋⌊mpd⌋ \sum_p \sum_d \mu(d) \lfloor \frac n {pd} \rfloor \l ...

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

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

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

  9. 洛谷 P2257 YY的GCD

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

  10. BZOJ 2820: YY的GCD

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 1705  Solved: 908 [Submit][Status][Dis ...

最新文章

  1. mysql命令行批量添加数据_mysql命令行批量插入100条数据命令
  2. Spring.net与Asp.net Mvc结合示例《转载》
  3. ArrayList与LinkedList的比较
  4. Java中Scanner的理解大总结
  5. input must have last dimension = k = 3 but is 2 for 'TopKV2_这种错误是怎么产生的
  6. redis设置数据库数量databases
  7. 2019-06-13 Java学习日记之MySql
  8. 利用Teensy进行EM410x卡模拟以及暴力破解EM410X类门禁系统可行性猜想
  9. 一年了,写点关于人生的东西吧
  10. SSM框架配置文件加载流程
  11. windows10用户密码获取
  12. React脚手架搭建及创建React项目
  13. python面向对象编程指南 豆瓣_Python面向对象编程
  14. 申请苹果个人开发者经历
  15. VxWorks编译ACE和TAO
  16. File-backed Storage
  17. 走迷宫爆压,21行突破B站记录(自创,自设地图)
  18. 超全,我梳理了最频繁使用的 70 个数据分析网址
  19. Facebook Surround 360 使用说明
  20. P1209 [USACO1.3]修理牛棚 Barn Repair

热门文章

  1. vscode eslint 格式化完之后,一个标签多行,看的头疼
  2. 前端从入门到精通(记录自己的前端学习之路)都是一些自己做的笔记
  3. 嵌入式Linux开发笔试,嵌入式Linux工程师笔试题
  4. php mysql 读取数据_PHP MySQL 读取数据
  5. linux系统ip6tables怎么配置,ip6tables 基本配置
  6. python保存后不运行_Python后台执行不启用缓存
  7. python 特征工程_[译] 基于时序数据的特征工程 --- Python实现
  8. 机器学习理论与实战:逻辑回归
  9. 计算机技能测试题12答案,计算机基本技能考试选择题及答_计算机一级考试练习题及答案...
  10. idea 自动生成mybaits_如何让idea自动创建mybatis配置文件?