题目链接

  真是神TM莫比乌斯

  首先来看一个神奇的结论:求gcd(x,y)==k的对数,其中1<=x<=n,1<=y<=m

  等同于求gcd(x,y)==1的对数,其中1<=x<=n/k,1<=y<=m/k

  然后这题就变成了求gcd(x,y)==1的对数,其中1<=x<=n/k,1<=y<=m/k

  我们再把莫比乌斯反演的定义copy一下

  设有函数$F(n),f(n)$定义在非负整数集合上

  有$F(n)=\sum\limits_{d|n}^{}f(d)$

  那么则有$f(n)=\sum\limits_{d|n}^{}miu(d)F(\frac{n}{d})$

  或者说如果有$F(n)=\sum\limits_{n|d}^{}f(d)$

  那么$f(n)=\sum\limits_{n|d}^{}miu(\frac{d}{n})F(d)$

  miu函数定义如下:

  若d=1,miu(d)=1;

  若d=$P_{1}P_{2}.......P_{n}$,则miu(d)=$(-1)^{k}$;

  其他情况下miu(d)=0.

  我们这道题使用第二种形态。

  我们设F(n)为gcd(x,y)==n的公倍数的x,y对数,f(n)为gcd(x,y)==n的x,y对数。

  则有$F(n)=\sum\limits_{n|d}^{}f(d)$

  根据莫比乌斯反演得到$f(n)=\sum\limits_{n|d}^{}miu(\frac{d}{n})F(d)$

  $F(d)=\frac{n}{d}\frac{m}{d}$显然

  且本题中我们要求的是f(1)

  那么原式化为$f(1)=\sum\limits_{i=1}^{min(n,m)}miu(i)\frac{n}{i}\frac{m}{i}$

  那么本题我们做完了吗?答案明显是否定的。

  因为你直接for一遍i会超时。

  观察到for i in 1~n 有一段区间使得n/i的取值是相同的

  而且这个取值最多只有$\sqrt[]{n}$种

  所以应用数论的分块优化

  贴上代码

  

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<cmath> using namespace std; inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} long long miu[];
long long prime[],tot;
bool f[]; long long count(long long n,long long m){
long long top=min(n,m);long long ans=;
long long x=;
while(x<=top){
long long y=min(n/(n/x),m/(m/x));
ans+=(long long)(miu[y]-miu[x-])*(n/x)*(m/x);
x=y+;
}
return ans;
} int main(){
miu[]=;
for(long long i=;i<=;++i){
if(!f[i]){
prime[++tot]=i;
miu[i]=-;
}
for(long long j=;j<=tot&&prime[j]*i<=;++j){
f[i*prime[j]]=;
if(i%prime[j]) miu[i*prime[j]]=-miu[i];
else break;
}
}
for(long long i=;i<=;++i) miu[i]+=miu[i-];
long long T=read();
while(T--){
long long n=read(),m=read(),e=read();
n/=e;m/=e;
if(n>m) swap(n,m);
printf("%lld\n",count(n,m));
}
return ;
}

【Luogu】P3455Zip-Queries(莫比乌斯反演)的更多相关文章

  1. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)

    手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/article/details/79506484 题目链接: (Lu ...

  2. BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+数论分块)

    手动博客搬家: 本文发表于20171216 13:34:20, 原地址https://blog.csdn.net/suncongbo/article/details/78819470 URL: (Lu ...

  3. [jzoj 6084] [GDOI2019模拟2019.3.25] 礼物 [luogu 4916] 魔力环 解题报告(莫比乌斯反演+生成函数)

    题目链接: https://jzoj.net/senior/#main/show/6084 https://www.luogu.org/problemnew/show/P4916 题目: 题解: 注: ...

  4. [luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)

    题目链接:https://www.luogu.org/problemnew/show/P2568#sub 题目大意: 计算​$\sum_{x=1}^n\sum_{y=1}^n [gcd(x,y)==p ...

  5. BZOJ 5330 Luogu P4607 [SDOI2018]反回文串 (莫比乌斯反演、Pollard Rho算法)

    题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=5330 (Luogu) https://www.luogu.org/prob ...

  6. [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)

    题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...

  7. [Luogu P3455] [POI2007]ZAP-Queries (莫比乌斯反演 )

    题面 传送门:洛咕 Solution 这题比这题不懂简单到哪里去了 好吧,我们来颓柿子. 为了防止重名,以下所有柿子中的\(x\)既是题目中的\(d\) 为了方便讨论,以下柿子均假设\(b>=a ...

  8. Luogu P2257 YY的GCD 莫比乌斯反演

    第一道莫比乌斯反演...$qwq$ 设$f(d)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d]$ $F(n)=\sum_{n|d}f(d)=\lfloor \frac{N ...

  9. 【Luogu】P2303Longge的问题(莫比乌斯反演)

    就让我这样的蒟蒻发一个简单易想的题解吧!!! 这题我一开始一看,woc这不是莫比乌斯反演么,推推推,推到杜教筛,输出结果一看不对 emmm回来仔细想想……woc推错了? 然后撕烤半天打了个暴力,A了 ...

  10. 【Luogu】P3327约数个数和(莫比乌斯反演+神奇数论公式)

    题目链接 真TM是神奇数论公式. 注明:如无特殊说明我们的除法都是整数除法,向下取整的那种. 首先有个定理叫$d(ij)=\sum\limits_{i|n}{}\sum\limits_{j|m}{}( ...

随机推荐

  1. 安装MySQLdb出现HAVE_WCSCOLL重定义问题的解决方法

    root@wodeyitian MySQL-python-1.2.3]# python setup.py install running install running bdist_egg runni ...

  2. [Tomcat]如何清理缓存

    步骤: 1.进入tomcat文件夹 2.找到work目录 3.work目录下有个catalina目录 4.将catalina目录整个删除

  3. Gitlab User Guide

    Installation Configuration Set user name and email Add SSH keys Repository Create New Repository Clo ...

  4. 百度影棒安装apk方法

    确保影棒和电脑接入家中同一WIFI中,开启影棒USB调试,手机端运行悟空助手或沙发管家等软件,之后无线推送需要安装的APK. 安装文件管理apk后,可以使用U盘安装.

  5. ubuntu 14.04 构建openstack使用的ubunt 16 的桌面版的使用镜像

    1. 下载ubuntu 16.04桌面版的iso文件,我的个人网盘中有,可以下载 https://pan.baidu.com/s/14qT3lbbqLwDaejmz2VSkyw 2. 安装制作镜像文件 ...

  6. WPF中做出一个QQ登陆界面

    Xaml: <Window x:Class="ChatSoftware.MainWindow" xmlns="http://schemas.microsoft.co ...

  7. Java截取视频文件缩略图

    /** * 截取视频第0帧的图片 */public static void videoImage(String filePath, String fileName,int widthdist, int ...

  8. PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)

    PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)  http://www.patest.cn/contests/pat-b-practise/1027 本题 ...

  9. 学c++有感

    第一次学习这么课程的时候,感觉课堂和教材的内容基本上都能接受和理解,但真正实际动手编写程序又觉得一片空白无从下手,可谓是“欲起平之恨无力.”一开始编写程序时,总是出现错误,从而产生了恐惧感,认为自己不 ...

  10. IE10无法识别setPrototypeOf属性问题

    项目遇到一个需求,React16.6.0兼容IE10浏览器 首先在IE浏览器打开,IE11可以支持,打开控制台切换到IE10,页面白屏,控制台报错. 控制台报错 vue2.0 兼容ie9及其以上 Ma ...