这题大概就是提取一下d,然后就跟前面的题目差不多了。

#include<bits/stdc++.h>
#define N 10000005
using namespace std;
typedef long long ll;
int maxn,qx[],qy[],f[N],prime[N],cnt,mu[N],vis[N];
ll sum[N];
void calcmu(){
cnt=;memset(vis,,sizeof(vis));mu[]=;
for(int i=;i<=maxn;i++){
if(vis[i]){prime[++cnt]=i;mu[i]=-;}
for(int j=;j<=cnt;j++){
int t=prime[j]*i;if(t>maxn)break;
vis[t]=;
if(i%prime[j]==){mu[t]=;break;}
mu[t]=-mu[i];
}
}
for(int i=;i<=maxn;i++)if(mu[i])sum[i]-=mu[i];
for(int i=maxn;i>=;i--)if(sum[i])
for(ll j=1LL*i*i;j<=maxn;j*=i)sum[j]=sum[i];
for(int i=;i<=maxn;i++)sum[i]+=sum[i-];
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
int T=read();
for(int i=;i<=T;i++){
qx[i]=read();qy[i]=read();
maxn=max(maxn,max(qx[i],qy[i]));
}
calcmu();
for(int aaa=;aaa<=T;aaa++){
int n=qx[aaa],m=qy[aaa];
if(n>m)swap(n,m);ll ans=;
for(int i=,j=;i<=n;i=j+){
j=min(n/(n/i),m/(m/i));
ans+=(ll)(n/i)*(ll)(m/i)*(sum[j]-sum[i-]);
}
printf("%lld\n",ans);
}
}

【反演复习计划】【bzoj3994】DZY loves maths的更多相关文章

  1. BZOJ3309 DZY Loves Maths 莫比乌斯反演、线性筛

    传送门 推式子(默认\(N \leq M\)): \(\begin{align*} \sum\limits_{i=1}^N \sum\limits_{j=1}^Mf(gcd(i,j)) & = ...

  2. 【反演复习计划】【bzoj3994】约数个数和

    首先要用数学归纳证明一个结论,不过因为我实在是懒得打公式了... 先发代码吧. #include<bits/stdc++.h> #define N 50005 using namespac ...

  3. 【反演复习计划】【51nod1594】Gcd and Phi

    现在感觉反演好多都是套路QAQ…… #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int n,c ...

  4. 【反演复习计划】【COGS2432】爱蜜莉雅的施法

    也是一个反演. 第一次手动推出一个简单的式子,激动.jpg 原题意思是求:$Ans=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\phi(gcd(i,j))$随 ...

  5. 【反演复习计划】【bzoj1011】zap-queries

    快三个月没做反演题了吧…… 感觉高一上学期学的全忘了…… 所以还得从零开始学推式子. # bzoj1011 标签(空格分隔): 未分类 --- 原题意思是求以下式子:$Ans=\sum\limits_ ...

  6. 【反演复习计划】【bzoj4407】于神之怒加强版

    #include<bits/stdc++.h> #define N 5000010 #define yql 1000000007 using namespace std; typedef ...

  7. 【反演复习计划】【COGS2433】&&【bzoj3930,CQOI2015选数】爱蜜莉雅的冰魔法

    同bzoj3930. (日常盗题图) #include<bits/stdc++.h> #define N 1000010 #define yql 1000000007 #define ll ...

  8. 【反演复习计划】【COGS2431】爱蜜莉雅的求助

    出题人怎么这么不认真啊==明明官方译名是爱蜜莉雅…… 而且我们爱蜜莉雅碳是有英文名哒!是Emilia.你那个aimiliya我实在是无力吐槽…… 不过抱图跑23333首先这很像约数个数和函数诶!但是唯 ...

  9. 【反演复习计划】【bzoj2154】Crash的数字表格

    膜拜cdc……他的推导详细到我这种蒟蒻都能看得懂! 膜拜的传送门 所以我附一下代码就好了. #include<bits/stdc++.h> #define N 10000005 #defi ...

随机推荐

  1. JavaSE复习(三)异常与多线程

    异常 分类 编译时期异常:checked异常. 在编译时期,就会检查,如果没有处理异常,则编译失败.(如日期格式化异常) 运行时期异常:runtime异常. 在运行时期,检查异常.在编译时期,运行异常 ...

  2. [转]使用 Travis CI 部署你的 Hexo 博客

    之前使用Hexo的时候,都是在本地进行编译和部署的,平时使用的时候觉得没什么,只需要 hexo ghexo d 两步就可以把博客更新的内容推到GitHub Pages上.但是某些时候可能会遇到你的文件 ...

  3. 201621044079WEEK06-接口、内部类

    作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...

  4. 【工作感悟】——揭开“PM”的面纱

    [前言] 上次跟大家分享了面试的故事,小编觉得效果还不错,因此小编决定把工作感悟系列写下去,不过时间就不好说了.希望小伙伴们在评论列表中发表自己的看法和观点,积极参与啦~~ [背景] 初来Y公司,作为 ...

  5. KVO 开发详情

    目录 概念 应用KVO的3个步骤 关联属性的KVO 手动管理KVO通知 一.概念 KVO全称是 Key-Value Observing ,是OC的一种消息发送机制.这个机制是指:假设将B对象注册为A对 ...

  6. JavaScript实现键盘操作页面跳转

    对于使用笔记本的同学来说,鼠标操作比较费劲,键盘操作比较方便,下面是一段JavaScript写的,用键盘来实现页面跳转.把location后面的改成你要跳转的地址即可,示例是用方向键实现日志页面的前一 ...

  7. BZOJ4557 JLOI2016侦察守卫(树形dp)

    下称放置守卫的点为监控点.设f[i][j]为i子树中深度最大的未被监视点与i的距离不超过j时的最小代价,g[i][j]为i子树中距离i最近的监控点与i的距离不超过j且i子树内点全部被监视时的最小代价. ...

  8. Hibernate技术入门

    ORM原理 ORM(Object Relational Mapping)是对象到关系的映射,它的作用是在关系数据库和对象之间做一个自动映射,将数据库中的数据表映射成对象(持久化类),对关系型数据库以对 ...

  9. [BZOJ4212]神牛的养成计划

    [BZOJ4212]神牛的养成计划 试题描述 Hzwer 成功培育出神牛细胞,可最终培育出的生物体却让他大失所望...... 后来,他从某同校女神 牛处知道,原来他培育的细胞发生了基因突变,原先决定神 ...

  10. Android 多线程: 完全解析线程池ThreadPool原理&使用

    目录 1. 简介 2. 工作原理 2.1 核心参数 线程池中有6个核心参数,具体如下 上述6个参数的配置 决定了 线程池的功能,具体设置时机 = 创建 线程池类对象时 传入 ThreadPoolExe ...