题目描述

对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。

输入输出格式

输入格式:

第一行一个整数n,接下来n行每行五个整数,分别表示a、b、c、d、k

输出格式:

共n行,每行一个整数表示满足要求的数对(x,y)的个数

输入输出样例

输入样例#1: 复制

2
2 5 1 5 1
1 5 1 5 2
输出样例#1: 复制

14
3

说明

100%的数据满足:1≤n≤50000,1≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000

莫比乌斯反演

首先你要会求$\sum ^{n}_{i=1}\sum ^{m}_{i=1}\left[ \gcd \left( i,j\right) = 1\right]$

然后不难发现这题可以容斥处理

假设$work(i,j)=\sum ^{n}_{i=1}\sum ^{m}_{i=1}\left[ \gcd \left( i,j\right) = 1\right]$

那么$ans=work(b,d)-work(a-1,d)-work(c-1,b)+work(a-1,c-1)$

// luogu-judger-enable-o2
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=1e6+;
inline int read()
{
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int N,a,b,c,d,k,ans;
int vis[MAXN],prime[MAXN],mu[MAXN],tot=;
void GetMu()
{
vis[]=;mu[]=;
for(int i=;i<=N;i++)
{
if(!vis[i]) prime[++tot]=i,mu[i]=-;
for(int j=;j<=tot&&i*prime[j]<=N;j++)
{
vis[i*prime[j]]=;
if(i%prime[j]==) {mu[i*prime[j]]=;break;}
else mu[i*prime[j]]=-mu[i];
}
} for(int i=;i<=N;i++)
mu[i]+=mu[i-];
}
int work(int n,int m)
{
int limit=min(n/k,m/k),ans=;
for(int i=,nxt;i<=limit;i=nxt+)
{
nxt=min(n/(n/i),m/(m/i));
ans+=(mu[nxt]-mu[i-])*(n/(k*i))*(m/(k*i));
}
return ans;
}
main()
{
N=1e5;
GetMu();
int QWQ=read();
while(QWQ--)
{
a=read(),b=read(),c=read(),d=read(),k=read();
ans=work(b,d)-work(a-,d)-work(c-,b)+work(a-,c-);
printf("%d\n",ans);
}
return ;
}

最新文章

  1. ubuntu14.04 下安装有道词典
  2. 【7集iCore3基础视频】7-5 iTool2驱动安装
  3. C#的面向对象特性之封装
  4. proxy server 代理服务器
  5. Linux中的svn客户端RabbitVCS-2
  6. WinFrom下连接字符串的数据库文件路径问题
  7. 在NGINX作反向代理,CI(CodeIgniter)的PHP框架下限制管理目录的IP的实现
  8. bower安装使用以及git安装
  9. javascript小知识1 this的用法
  10. java web 简单的登录注册
  11. linux nvme的sendfile流程
  12. Swift-Extensions
  13. MCV 和 MTV框架基本信息
  14. window.open打开页面居中显示
  15. 导入日志文件到mysql数据库表
  16. SSM整合Mybatis-Spring
  17. Web.config Transformation Syntax for Web Application Project Deployment
  18. visual studio 单元测试的认识
  19. abort: no username supplied (see &quot;hg help config&quot;)
  20. mysql的check约束问题

热门文章

  1. jq+mui 阻止事件冒泡
  2. ERROR 1062 (23000): Duplicate entry for key &#39;PRIMARY&#39;
  3. Drop it FreeCodeCamp
  4. mac上安装flask详细步骤
  5. 将JavaBean对象/List或Set或Map对象转成JSON方式
  6. C语言基础 (10) 变量作用域,生命周期 内存结构
  7. gradle多模块构建集成swagger
  8. http-server 简介 复制的
  9. [网络流24题] 方格取数问题/骑士共存问题 (最大流-&gt;最大权闭合图)
  10. nginx的一些