求 $\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)\in prime]$
 
按套路前提 $gcd(i,j)$
 
$\Rightarrow\sum_{d=1}^{n}d\in prime\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==d]$
 
后面的 $\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==d]$ 是反演模板
 
$\Rightarrow \sum_{b=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\mu(b)\left \lfloor \frac{n}{db} \right \rfloor \left \lfloor \frac{m}{db} \right \rfloor$
 
答案为 $\sum_{d=1}^{n}d\in prime \sum_{b=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\mu(b)\left \lfloor \frac{n}{db} \right \rfloor \left \lfloor \frac{m}{db} \right \rfloor$
 
用这个式子整除分块算是 $O(n)$ 的,我们优化一下.
 
令 $T=db$
 
则原式 $=\sum_{T=1}^{n}\left \lfloor \frac{n}{T} \right \rfloor\left \lfloor \frac{m}{T} \right \rfloor\sum_{d|T,d\in prime}\mu(\frac{T}{d})$
 
发现后面的 $\sum_{d|T,d\in prime}\mu(\frac{T}{d})$ 可以提前预处理(只需枚举质数并暴力更新就行)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#define maxn 10000009
const long long N = 10000009 ;
#define ll long long
#define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
using namespace std;
int vis[maxn],prime[maxn],mu[maxn],g[maxn],tot;
long long sumv[maxn];
void init(){
mu[1]=1;
for(int i=2;i<maxn;++i) {
if(!vis[i]) { prime[++tot]=i,mu[i]=-1; }
for(int j=1;j<=tot && (ll)prime[j]*i < (ll)maxn;++j)
{
vis[prime[j]*i]=1;
if(i % prime[j]==0) {
mu[i * prime[j]]=0;
break;
}
mu[i * prime[j]]=-mu[i];
}
}
for(int i=1;i<=tot;++i)
for(ll j=1;(ll)j*prime[i]<N;++j)
g[prime[i]*j]+=mu[j];
for(int i=1;i<=10000000;++i) sumv[i] = (long long)sumv[i-1]+g[i];
}
ll work(int n,int m) {
if(n>m) swap(n,m);
long long ans=0;
for(ll i=1,j;i<=n;i=j+1) {
j = min(n/(n/i),m/(m/i));
ans += (n/i) * (m/i) * (sumv[j] - sumv[i-1]);
}
return ans;
}
int main(){
//setIO("input");
init();
int T,x,y; scanf("%d",&T);
while(T--) scanf("%d%d",&x,&y),printf("%lld\n",work(x,y));
return 0;
}

  

BZOJ 2820: YY的GCD 莫比乌斯反演_数学推导_线性筛的更多相关文章

  1. [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块)

    [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块) 题面 给定N, M,求\(1\leq x\leq N, 1\leq y\leq M\)且gcd(x, y)为质数的(x, y)有多少对. ...

  2. BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1624  Solved: 853[Submit][Status][Discu ...

  3. Bzoj 2820: YY的GCD(莫比乌斯反演+除法分块)

    2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x& ...

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

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

  5. bzoj 2820 YY的GCD 莫比乌斯反演

    题目大意: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 这里就抄一下别人的推断过程了 后面这个g(x) 算的方法就是在线性 ...

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

    我们可以枚举每一个质数,那么答案就是 $\sum_{p}\sum_{d<=n}\mu(d)*\lfloor n / pd \rfloor *\lfloor m / pd \rfloor$ 直接做 ...

  7. 【莫比乌斯反演】关于Mobius反演与gcd的一些关系与问题简化(bzoj 2301 Problem b&&bzoj 2820 YY的GCD&&BZOJ 3529 数表)

    首先我们来看一道题  BZOJ 2301 Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd( ...

  8. 【刷题】BZOJ 2820 YY的GCD

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

  9. BZOJ 2820 luogu 2257 yy的gcd (莫比乌斯反演)

    题目大意:求$gcd(i,j)==k,i\in[1,n],j\in[1,m] ,k\in prime,n,m<=10^{7}$的有序数对个数,不超过10^{4}次询问 莫比乌斯反演入门题 为方便 ...

随机推荐

  1. JS 封装一个求数组最大值的函数

    var aa = [1,2,3,4,9,2,5]; z(aa); function z(attr){ var b = 0 for(var i =1;i<aa.length;i++){ if(aa ...

  2. bzoj 1189: [HNOI2007]紧急疏散evacuate 分层图最大流_拆点_二分

    Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一 块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是 ...

  3. 【udacity】机器学习

    Evernote Export 2.人工智能简介 机器学习源自于人工智能,在此方向上,该领域有分为不同学派,机器学习主要关注的是制造能够自主动作的机器 3.人工智能难题 1.所有智能体都只有很少的计算 ...

  4. mysql出错ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

    其他的贴会教你 1.键盘上win+r 2.输入cmd 3.输入net  start mysql 但是还是没用 你可以试试 1.右击开始菜单 2.点击windows PowerShell(i) 3.输入 ...

  5. mDNS 原理的简单理解

    转自:http://www.binkery.com/post/318.html mDNS 原理的简单理解 mDNS multicast DNS , 使用5353端口. 在局域网内,你要通过一台主机和其 ...

  6. 3.3、Ansible命令参数详解

    0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...

  7. 转载:Java编程风格与命名规范整理

    转载自:传送门 不想复制,点进去看喽23333333

  8. 洛谷 P1270 “访问”美术馆(树形DP)

    P1270 “访问”美术馆 题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向一个展览室.Peer ...

  9. oracle schema彻底理解

    oracle中的Schema简析 在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样 ...

  10. [Linux]第一部分-认识Linux及Linux主机规划与安装

    ctrl + alt + f1~f6 切换六个终端ctrl + alt + f7 图形化界面 startx 开启x-window桌面 ls -al /root 列出root目录 date日期 +%y/ ...