BZOJ2301: [HAOI2011]Problem b(莫比乌斯反演)

Description

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

Input

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

Output

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

Sample Input

2
2 5 1 5 1
1 5 1 5 2

Sample Output

14
3

解题思路:

和1101一样,最后二维容斥一下就好了。

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
typedef long long lnt;
const int N=50010;
int prime[N];
int miu[N];
lnt s[N];
bool vis[N];
int cnt;
int T;
void gtp(void)
{miu[1]=1;for(int i=2;i<N;i++){if(!vis[i]){prime[++cnt]=i;miu[i]=-1;}for(int j=1;j<=cnt&&prime[j]*i<N;j++){vis[prime[j]*i]=true;if(i%prime[j]==0){miu[i*prime[j]]=0;break;}miu[prime[j]*i]=-miu[i];}}for(int i=1;i<N;i++)s[i]=s[i-1]+miu[i];return ;
}
lnt query(lnt a,lnt b,lnt d)
{a/=d;b/=d;lnt c=std::min(a,b);lnt ans=0;for(int k=1,u;k<=c;k=u+1){u=std::min(a/(a/k),b/(b/k));ans+=(s[u]-s[k-1])*(a/k)*(b/k);}return ans;
}
int main()
{gtp();scanf("%d",&T);while(T--){lnt a,b,c,d,k;scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&k);a--,c--;lnt ans=query(b,d,k)+query(a,c,k)-query(a,d,k)-query(b,c,k);printf("%lld\n",ans);}return 0;
}

 

转载于:https://www.cnblogs.com/blog-Dr-J/p/10161311.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Js正则表达式数字或者带小数点的数字

function chk() {var patrn /^\d(\.\d)?$/;var result true;$("input[typetext]").each(function () {if (!patrn.exec(this.value)) {alert("请输入正确的数字&#xff01;");result false;}})return result;}转载于:https://www.cnblogs.com/smzd/p/…

FastJson/spring boot: json输出

1.引入FastJson依赖包 <!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency>pom.xml参考 <project xmlns"http://maven.apa…

safari 调试iPhone web页面

safari设置-打开Safari偏好者设置&#xff0c;选中“高级菜单”&#xff0c;在页面最下方看到“在菜单中显示开发菜单”的复选框&#xff0c;在复选框内打钩&#xff0c;这样设置完毕就能在Safari菜单中看到开发菜单了iPhone 设置-打开iPhone手机设置app 选择Safari&#xff0c…

new函数

使用new函数是另一种创建变量的方式。创建一个未命名的T类型变量&#xff0c;初始化为T类型的零值&#xff0c;并返回其地址。例如&#xff1a; p : new(int)使用new函数创建变量和取其地址的普通局部变量没有不同&#xff0c;只是不需要引入声明时的一个名字&#xff0c;有语法…

软件项目管理

目 录 前言 2 如何做业务调研&#xff1f; 2.1 调研工作如何组织&#xff1f; 2.2 调研准备阶段容易犯哪些错误&#xff1f; 2.3 调研准备阶段容易犯哪些错误&#xff1f;) 2.4 调研准备阶段容易犯哪些错误&#xff1f; 2.5 现场调研阶段容易犯哪些错误&#xff1f; 2.…

Python 列表元组字典集合

列表&#xff08;list&#xff09; 有序性&#xff0c;可存储任意类型的值通过偏移存取&#xff0c;支持索引来读取元素&#xff0c;第一个索引为0 &#xff0c;倒数第一个索引为-1可变性 &#xff0c;支持切片、合并、删除等操作可通过索引来向指定位置插入元素可通过pop()方法…

ios兼容问题

滑动卡顿&#xff1a; -webkit-overflow-scrolling:touch; 转载于:https://www.cnblogs.com/smzd/p/7891722.html

postgresql 高可用 etcd + patroni 之二 patroni

os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni etcd 是在一个postgrsql 开源大会上 亚信的一个哥们讲解的高可用方案。 依然是基于 postgreql stream replication。 ip规划 192.168.56.101 node1 master 192.168.56.102 node2 slave 192.168.56.103 …

vue对象侦测

http://blog.csdn.net/yihanzhi/article/details/74200618 数组&#xff1a;this.$set(this.arr,index,value) 转载于:https://www.cnblogs.com/smzd/p/8390626.html

Laravel 5.4 migrate时报错: Specified key was too long error

Laravel 5.4默认使用utf8mb4字符编码&#xff0c;而不是之前的utf8编码。因此运行php artisan migrate 会出现如下错误&#xff1a; [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key leng…

springboot工具类

ClassPathResource 在类路径下读取资源 public final String getPath() public boolean exists() public InputStream getInputStream() WebUtils 获取web资源工具类 public static String getRealPath(ServletContext servletContext, String path) public static Object g…

MySQL中事物的详解

1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元&#xff0c;该工作单元中所有操作要么同时成功&#xff0c;要么同时失败。事物有如下四个特性&#xff0c;ACID简称“酸性”。 1&#xff09;原子性&#xff1a;工作单元中所有的操作要么都成功&#xff0c;要…

记了老是忘记那就写下来吧宏任务微任务

宏任务&#xff1a;script 定时器 微任务&#xff1a;promiss process.nexttick new Promise(function(resolve){console.log(3);//此为同步程序resolve();//同步 是否异步 由内部函数决定console.log(4); }).then(function(){ //。then 异步console.log(5); });async function…

SPRING自定义注入CONTROLLER变量

问题描述 在SpringMVC中默认可以注入Model&#xff0c;ModelAndView&#xff0c;RequestParam&#xff0c;PathVariable 等&#xff0c;那么这个是怎么实现的&#xff0c;以及怎么注入一个自定义的参数呢 HandlerMethodArgumentResolver 在SpringMVC中有一个接口HandlerMethod…

进程,线程

import os, timeif __name__ __main__:print(the calling process id:%d % os.getpid())# 创建进程pid os.fork()if pid 0:# 子进程print(the child pid is %d % os.getpid())time.sleep(3)elif pid > 0:# 父进程os.wait() # 等待子进程终止print([%d]bye-bye % os.getpi…

livebos--iframe使用

新建一个方法。建一个参数&#xff0c;iframe控件&#xff0c;虚拟列。然后使用以下信息 <% livebos languagejavascript %>var url LB_ObjURI("Lb_lbOrganization",0,[],["NoTitle"]);var v {"edit" : "url ", "view"…

单行溢出 和多行溢出

/*单行溢出*/.one_txt_cut{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.txt_cut{overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}转载于:https://www.cnblogs.com/smzd/p/8491583…

Spring方法注入 @Lookup注解使用

情景分析 在Spring的诸多应用场景中bean都是单例形式&#xff0c;当一个单利bean需要和一个非单利bean组合使用或者一个非单利bean和另一个非单利bean组合使用时&#xff0c;我们通常都是将依赖以属性的方式放到bean中来引用&#xff0c;然后以Autowired来标记需要注入的属性。…

Jupyter配置步骤

Jupyter是基于浏览器的可交互式开发工具&#xff0c;在数据科学界非常受欢迎&#xff0c;它功能齐全&#xff0c;使用方便&#xff0c;是一款数据分析和建模挖掘的利器。 本文简介Jupyter的配置和使用过程 一、修改添加国内镜像 通常我会先安装Anaconda&#xff0c;再安装Jupyt…