2301: [HAOI2011]Problem b
时间:2022-05-08
本文章向大家介绍2301: [HAOI2011]Problem b,主要内容包括2301: [HAOI2011]Problem b、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
2301: [HAOI2011]Problem b
Time Limit: 50 Sec Memory Limit: 256 MB
Submit: 1737 Solved: 749
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
HINT
100%的数据满足:1≤n≤50000,1≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000
Source
题解:一个霸(dou)气(bi)的莫比乌斯反演,然后没啥了,开始瞎搞——不过这题里面有个重要的思想——既然直接求某“悬空”区间的结果(“悬空”区间即像本题中第一个值设定为[a,b],而不是(0,b]),那么为何不用好求的求出来然后容斥原理加加减减呢——嗯哼么么哒
1 const maxn=150000;
2 var
3 i,j,k,l,m,n,x1,y1,x2,y2,z:longint;
4 a,b:array[0..maxn] of longint;
5 procedure swap(var x,y:longint);
6 var z:longint;
7 begin
8 z:=x;x:=y;y:=z;
9 end;
10 function doit(x,y:longint):int64;
11 var i,j,k:longint;
12 begin
13 doit:=0;
14 if x>y then swap(x,y);
15 if x=0 then exit(0);
16 i:=1;
17 while i<=x do
18 begin
19 if (x div (x div i))<(y div (y div i)) then
20 k:=x div (x div i)
21 else k:=y div (y div i);
22 inc(doit,(b[k]-b[i-1])*int64(x div i)*int64(y div i));
23 i:=k+1;
24 end;
25 end;
26 begin
27 for i:=2 to maxn do
28 begin
29 if a[i]<>0 then continue;
30 for j:=i to maxn div i do a[i*j]:=i;
31 end;
32 b[1]:=1;
33 for i:=2 to maxn do
34 if a[i]=0 then b[i]:=-1 else
35 if ((i div a[i]) mod a[i])=0 then b[i]:=0 else
36 b[i]:=-b[i div a[i]];
37 for i:=2 to maxn do b[i]:=b[i]+b[i-1];
38 readln(n);
39 for i:=1 to n do
40 begin
41 readln(x1,y1,x2,y2,z);
42 x1:=(x1-1) div z;y1:=y1 div z;
43 x2:=(x2-1) div z;y2:=y2 div z;
44 writeln(doit(y1,y2)-doit(x1,y2)-doit(y1,x2)+doit(x1,x2));
45 end;
46 readln;
47 end.
- 第二周编程作业 -Logistic Regression with a Neural Network mindsetLogistic Regression with a Neural Network
- 左手用R右手Python系列——任务进度管理
- 左右用R右手Pyhon系列——趣直播课程抓取实战
- 第三周编程作业-Planar data classification with one hidden layerPlanar data classification with one hidden l
- 用R语言照葫芦画瓢撸了一个简易代理~
- 左手用R右手Python——CSS网页解析实战
- R语言数据抓取实战——RCurl+XML组合与XPath解析
- Python网络数据抓取实战——Xpath解析豆瓣书评
- 左手用R右手Python系列17——CSS表达式与网页解析
- 左手用R右手Python系列16——XPath与网页解析库
- 扒一扒rvest的前世今生!
- RCurl中这么多get函数,是不是一直傻傻分不清!!!
- 机器学习(二)深度学习实战-使用Kera预测人物年龄问题描述引入所需要模块加载数据集创建模型编译模型优化optimize1 使用卷积神经网络optimize2 增加神经网络的层数输出结果结果
- 异步加载的基本逻辑与浏览器抓包一般流程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux jdk安装及环境变量配置教程(jdk-8u144-linux-x64.tar.gz)
- centos6.6 下 安装 php7 + nginx环境的方法
- 如何优雅地删除 Linux 中的垃圾文件的方法
- Ubuntu18.04 安装 Anaconda3的教程详解
- VScode Remote SSH通过远程编辑与调试代码
- Ubuntu18.04下安装配置SSH服务的方法步骤
- Openssl实现双向认证教程(附服务端客户端代码)
- centos8使用Docker部署Django项目的详细教程
- ubuntu18.04 安装qt5.12.8及环境配置的详细教程
- 安装Ubuntu20.04与安装NVIDIA驱动的教程
- Ubuntu下安装nvidia显卡驱动(安装方式简单)
- Ubuntu 20.04 apt 更换国内源的实现方法
- Android设计模式之单例模式解析
- Android屏蔽软键盘并且显示光标的实例详解
- Android实现底部缓慢弹出菜单