Description

link

\[\sum \limits_{i = 1}^A \sum \limits_{j = 1}^B [ \gcd(i, j) = d]
\]

要\(O(\sqrt n)\)的算法

Solution

题目要求的是

\[\sum \limits_{i = 1}^A \sum \limits_{j = 1}^B [ \gcd(i, j) = d]
\]

要\(O(\sqrt n)\)的算法

对式子进行套路性的变形

\[\sum \limits_{i = 1}^{ \lfloor \frac{A}{d} \rfloor} \sum \limits_{j = 1}^{ \lfloor \frac{B}{d} \rfloor} [ \gcd(i, j) = 1]
\]

(代入 \(\epsilon = 1 \ast \mu\))

\[\sum \limits_{i = 1}^{ \lfloor \frac{A}{d} \rfloor} \sum \limits_{j = 1}^{ \lfloor \frac{B}{d} \rfloor} \sum \limits_{g | \gcd(i, j)} \mu(g)
\]

拆开\(d | \gcd(i, j)\):

\[\begin{aligned} & \sum \limits_{i = 1}^{ \lfloor \frac{A}{d} \rfloor} \sum \limits_{j = 1}^{ \lfloor \frac{B}{d} \rfloor} \sum \limits_{g | i, g | j} \mu(g) \\ =& \sum_{g = 1}^{ \min(A, B)} \mu(g) \lfloor \tfrac{A}{d} \rfloor\lfloor \tfrac{B}{d} \rfloor \end{aligned}
\]

然后整除分块

CODE

#include<bits/stdc++.h>
using namespace std;
#define int long long
namespace yspm{
const int N=1e6+10;
int vis[N],miu[N],pri[N],cnt;
inline void prework()
{
miu[1]=1;
for(int i=2;i<N;++i)
{
if(!vis[i]) pri[cnt++]=i,miu[i]=-1;
for(int j=0;j<cnt&&i*pri[j]<N;++j)
{
vis[i*pri[j]]=1; if(i%pri[j]) miu[i*pri[j]]=-miu[i];
else{miu[i*pri[j]]=0; break;}
} miu[i]+=miu[i-1];
}
return ;
}
signed main()
{
prework();
int a,b,d,ans=0; cin>>a>>b>>d;
a/=d; b/=d; if(a>b) swap(a,b);
for(int l=1,r,x,y;l<=a;l=r+1)
{
x=a/l; y=b/l;
r=min(a/x,b/y); ans+=x*y*(miu[r]-miu[l-1]);
} printf("%lld\n",ans);
return 0;
}
}
signed main(){yspm::main(); return 0;}

LGOJ4450 双亲数的更多相关文章

  1. BZOJ2045: 双亲数

    2045: 双亲数 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 602  Solved: 275[Submit][Status] Descripti ...

  2. bzoj 2045: 双亲数

    2045: 双亲数 Description 小D是一名数学爱好者,他对数字的着迷到了疯狂的程度. 我们以d = gcd(a, b)表示a.b的最大公约数,小D执著的认为,这样亲密的关系足可以用双亲来描 ...

  3. 【BZOJ2045】双亲数 莫比乌斯反演

    [BZOJ2045]双亲数 Description 小D是一名数学爱好者,他对数字的着迷到了疯狂的程度. 我们以d = gcd(a, b)表示a.b的最大公约数,小D执著的认为,这样亲密的关系足可以用 ...

  4. [BZOJ2045]双亲数(莫比乌斯反演)

    双亲数 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 959  Solved: 455[Submit][Status][Discuss] Descri ...

  5. 【题解】Luogu P4450 双亲数

    原题传送门 这题需要运用莫比乌斯反演(懵逼钨丝繁衍) 设F(t)表示满足gcd(x,y)%t=0的数对个数,f(t)表示满足gcd(x,y)=t的数对个数,实际上答案就是f(d) 这就满足莫比乌斯反演 ...

  6. P4450 双亲数

    思路 同zap-queries 莫比乌斯反演的板子 数据范围小到不用整除分块... 代码 #include <cstdio> #include <algorithm> #inc ...

  7. JZYZOJ 1375 双亲数 莫比乌斯反演

    http://172.20.6.3/Problem_Show.asp?id=1375 网上搜推理图. 有一段没有写莫比乌斯反演都快忘了..数学能力--,定理完全不会推,但是这道题整体来说应该是比较好写 ...

  8. 洛谷 - P4450 - 双亲数 - 整除分块

    https://www.luogu.org/fe/problem/P4450 应该不分块也可以. 求\(F(n,m,d)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^ ...

  9. [P4450] 双亲数 - 莫比乌斯反演,整除分块

    模板题-- \[\sum\limits_{i=1}^a\sum\limits_{j=1}^b[(i,j)=k] = \sum\limits_{i=1}^a\sum\limits_{j=1}^b[k|i ...

随机推荐

  1. Thread--CountDownLatch & CyclicBarrier

    参考:http://www.importnew.com/21889.html CountDownLatch countDown() 方法执行完只是计数器减一, 并不会阻塞当前运行线程的的后续代码执行. ...

  2. Q7:Reverse Integer

    7. Reverse Integer 官方的链接:7. Reverse Integer Description : Given a 32-bit signed integer, reverse dig ...

  3. Linux下mysql5.7安装

    当前最新版本为5.7,此次将分别采用yum安装和tar包编译安装的方式分别说明. 一.Yum安装 A:获取repo源 [root@localhost ~]# wget http://dev.mysql ...

  4. centos6-7 yum安装php的方法

    1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 yum remove php.x86_64 php-cli.x86_64 ph ...

  5. 寒假day09

    今天看了论文的结构,定下了毕设论文的框架,刷了剑指offer的部分算法题.

  6. 基于python的arcgis底图添加(转)

    本文翻译自:Qingkai‘s Blog 当使用python的Basemap库绘制地图时,选择一个漂亮的底图会为图片增色不少,但是使用map.bluemarble().map.etopo()或者map ...

  7. atan2&sin

    //弧度转化角度:弧度*180/PI //角度转化弧度:角度*PI/180 #include <math.h> #include <stdio.h> const double ...

  8. 16. docker 网络 端口映射

    一.本地操作 1.如何将 nginx 暴露给外界 创建 nginx 服务器 docker run  --name web -d nginx 查看 nginx 的 ip地址 docker network ...

  9. Java Keyword Synchronized 学习记录

    Synchronized Java编程思想:每个对象都包含了一把锁(也叫作"监视器"),它自动成为对象的一部分,调用任何synchronized方法时,对象就会被锁定,不可再调用那 ...

  10. How to .gitignore all files/folder in a folder, but not the folder itself?

    https://stackoverflow.com/questions/4250063/how-to-gitignore-all-files-folder-in-a-folder-but-not-th ...