题目链接

  真是神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. option标签selected="selected"属性失效的问题

    要在select标签上面加上autocomplete="off"关闭自动完成,不然浏览器每次刷新后将自动选择上一次关闭时的option,这样默认属性selected="s ...

  2. CSS3 基本要素概览

    这篇文章将对 CSS 的几个新属性 (text-shadow,box-shadow,and border-radius) 做基本介绍.这些 CSS3 属性通常用来加强页面布局.  RGBA  前面的 ...

  3. MFC程序添加快捷键

    [问题提出]     有的程序需要自定义组合键完成一定功能,如何实现? [解决方法]     RegisterHotKey函数原型及说明:     BOOL RegisterHotKey(     H ...

  4. WIN32项目中MFC程序窗口居中

    //class CMainWindow : public CFrameWnd void CMainWindow::OnSize(UINT nType, int cx, int cy){    CFra ...

  5. sublime前端插件以及常用快捷键

    29个常用 Sublime Text 插件推荐 来源:互联网 作者:佚名 时间:06-18 09:27:55 [大 中 小] Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,P ...

  6. uvm_reg——寄存器模型(三)

    uvm_reg 是uvm_reg_field , 包含所有uvm_reg_field 所有的函数.

  7. 安装AAA服务器遇到的问题

    安装升级AAA服务器的操作思路: 第一种:在原始服务器下更新升级安装包,实现升级: 第二种:重新安装最新版本的IOS,实现版本更新: 第一种方案更新AAS服务器ios 步骤1:copy软件更新包到li ...

  8. Slacklining 2017/2/7

    原文 Proline Slacklining's expansion is still in process,but it already has a professional scene.Some ...

  9. ipsec配置strongswan.conf和ipsec.conf

    配置strongswan.conf vi /usr/local/etc/strongswan.conf # strongswan.conf - strongSwan configuration fil ...

  10. bxslider 使用帮助

    “bxSlider”就是一款响应式的幻灯片js插件 bxSlider特性 充分响应各种设备,适应各种屏幕: 支持多种滑动模式,水平.垂直以及淡入淡出效果: 支持图片.视频以及任意html内容: 支持触 ...