完全平方数(打表+二分)
链接:https://ac.nowcoder.com/acm/contest/5203/C
来源:牛客网
完全平方数
题目描述
多次查询[l,r][l,r][l,r]范围内的完全平方数个数 定义整数x为完全平方数当且仅当可以找到整数y使得y∗y=xy*y=xy∗y=x
输入描述:
第一行一个数n表示查询次数之后n行每行两个数l,r
输出描述:
对于每个查询,输出一个数表示答案
示例1
输入
5
1 3
1 4
2 4
4 4
1 1000000000
输出
1
2
1
1
31622
备注:
n<=100000n <= 100000n<=100000
0<=l<=r<=10000000000<= l <= r <= 10000000000<=l<=r<=1000000000
数据范围比较大,暴力必WA,所以可以先打表把完全平方数打出来,然后直接二分,,可以利用STL里的lower_bound
和upper_bound
巧妙地计算出区间内完全平方数的个数。
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<math.h>
#include<vector>
#define ls (p<<1)
#define rs (p<<1|1)
#define mid (l+r)/2
#define over(i,s,t) for(register long long i=s;i<=t;++i)
#define lver(i,t,s) for(register long long i=t;i>=s;--i)
//#define int __int128
using namespace std;
typedef long long ll;//全用ll可能会MLE或者直接WA,试着改成int看会不会A
const ll N=15;
const ll INF=1e10+9;
const ll mod=2147483647;
const double EPS=1e-10;//-10次方约等于趋近为0
const double Pi=3.1415926535897;
ll n,m,l,r;
vector<ll>v;
void init()
{v.push_back(0);for(int i=1;i*i<=1000000000;++i){v.push_back(i*i);}
}
int main()
{scanf("%lld",&n);init();while(n--){scanf("%lld%lld",&l,&r);ll res=upper_bound(v.begin(),v.end(),r)-lower_bound(v.begin(),v.end(),l);printf("%lld\n",res);}return 0;
}
注:如果您通过本文,有(qi)用(guai)的知识增加了,请您点个赞再离开,如果不嫌弃的话,点个关注再走吧,日更博主每天在线答疑 ! 当然,也非常欢迎您能在讨论区指出此文的不足处,作者会及时对文章加以修正 !如果有任何问题,欢迎评论,非常乐意为您解答!( •̀ ω •́ )✧
完全平方数(打表+二分)相关推荐
- 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]
题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...
- 洛谷P4501/loj#2529 [ZJOI2018]胖(ST表+二分)
题面 传送门(loj) 传送门(洛谷) 题解 我们对于每一个与宫殿相连的点,分别计算它会作为多少个点的最短路的起点 若该点为\(u\),对于某个点\(p\)来说,如果\(d=|p-u|\),且在\([ ...
- hdu 5179(bfs打表+二分)
beautiful number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
- CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数组 aaa,下标从 000 开始,每次操作分为两个步骤: 构建出数组 bbb,有 bi=gcd(ai,a(i+1)modn)b_i=gcd(a ...
- P3564 [POI2014]BAR-Salad Bar(ST表 + 二分)
P3564 [POI2014]BAR-Salad Bar 给定一个长度为nnn的数组,里面元素只有111跟−1-1−1,问选出一个长度为lenlenlen的区间使得,这个区间的前缀和时刻大于零,后缀和 ...
- ssl1125-集合【哈希表二分查找+快排】
前言 今天学哈希表,然后就第一节晚修赶快写完作业就上了做题了,然后就做完了这道题get√. 正题 题目 给出两个集合: A是B的一个真子集,输出"A is a proper subset o ...
- luoguP5108 仰望半月的夜空 [官方?]题解 后缀数组 / 后缀树 / 后缀自动机 + 线段树 / st表 + 二分...
仰望半月的夜空 题解 可以的话,支持一下原作吧... 这道题数据很弱..... 因此各种乱搞估计都是能过的.... 算法一 暴力长度然后判断判断,复杂度\(O(n^3)\) 期望得分15分 算法二 通 ...
- 2016 Multi-University Training Contest 1 1004 GCD(ST表+二分)
GCD 注意观察gcd(al,al+1,...,ar)\gcd(a_{l},a_{l+1},...,a_{r})gcd(al,al+1,...,ar),当lll固定不动的时候,r=l...nr ...
最新文章
- 《图像处理实例》之 曲线之间距离求解
- SQL Server 2005 学习笔记之触发器简介[转]
- JS之Number的toString方法
- java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...
- 安卓中的布局属性详解
- eWebEditor浏览器兼容 ie8 ie7
- MySQL 高性能索引策略和查询优化
- 算法训练 Bus Tour
- PIC温控器c语言程序,PIC CCS C语言程序范例.doc
- windows2008server实现端口映射代理
- 存储资源 存储设备 数据存储
- 吉林大学计算机科学与技术学院校训,名校校训
- Linux文件管理之(高级)、⽂件查找、上传与下载、输出与重定向、字符处理命令、打包压缩解压缩、文件系统
- PS效果——斜面浮雕
- 51单片机实现的双机通信设计仿真
- 深剖C++内联函数和引用机制
- 全景地图是什么?怎么用有什么作用!
- [论文翻译]Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
- Python:短网址
- Tomcat集群---Cluster节点配置