链接: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_boundupper_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)的知识增加了,请您点个赞再离开,如果不嫌弃的话,点个关注再走吧,日更博主每天在线答疑 ! 当然,也非常欢迎您能在讨论区指出此文的不足处,作者会及时对文章加以修正 !如果有任何问题,欢迎评论,非常乐意为您解答!( •̀ ω •́ )✧

完全平方数(打表+二分)相关推荐

  1. 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]

    题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...

  2. 洛谷P4501/loj#2529 [ZJOI2018]胖(ST表+二分)

    题面 传送门(loj) 传送门(洛谷) 题解 我们对于每一个与宫殿相连的点,分别计算它会作为多少个点的最短路的起点 若该点为\(u\),对于某个点\(p\)来说,如果\(d=|p-u|\),且在\([ ...

  3. hdu 5179(bfs打表+二分)

    beautiful number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...

  5. CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数组 aaa,下标从 000 开始,每次操作分为两个步骤: 构建出数组 bbb,有 bi=gcd(ai,a(i+1)modn)b_i=gcd(a ...

  6. P3564 [POI2014]BAR-Salad Bar(ST表 + 二分)

    P3564 [POI2014]BAR-Salad Bar 给定一个长度为nnn的数组,里面元素只有111跟−1-1−1,问选出一个长度为lenlenlen的区间使得,这个区间的前缀和时刻大于零,后缀和 ...

  7. ssl1125-集合【哈希表二分查找+快排】

    前言 今天学哈希表,然后就第一节晚修赶快写完作业就上了做题了,然后就做完了这道题get√. 正题 题目 给出两个集合: A是B的一个真子集,输出"A is a proper subset o ...

  8. luoguP5108 仰望半月的夜空 [官方?]题解 后缀数组 / 后缀树 / 后缀自动机 + 线段树 / st表 + 二分...

    仰望半月的夜空 题解 可以的话,支持一下原作吧... 这道题数据很弱..... 因此各种乱搞估计都是能过的.... 算法一 暴力长度然后判断判断,复杂度\(O(n^3)\) 期望得分15分 算法二 通 ...

  9. 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 ...

最新文章

  1. 《图像处理实例》之 曲线之间距离求解
  2. SQL Server 2005 学习笔记之触发器简介[转]
  3. JS之Number的toString方法
  4. java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...
  5. 安卓中的布局属性详解
  6. eWebEditor浏览器兼容 ie8 ie7
  7. MySQL 高性能索引策略和查询优化
  8. 算法训练 Bus Tour
  9. PIC温控器c语言程序,PIC CCS C语言程序范例.doc
  10. windows2008server实现端口映射代理
  11. 存储资源 存储设备 数据存储
  12. 吉林大学计算机科学与技术学院校训,名校校训
  13. Linux文件管理之(高级)、⽂件查找、上传与下载、输出与重定向、字符处理命令、打包压缩解压缩、文件系统
  14. PS效果——斜面浮雕
  15. 51单片机实现的双机通信设计仿真
  16. 深剖C++内联函数和引用机制
  17. 全景地图是什么?怎么用有什么作用!
  18. [论文翻译]Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
  19. Python:短网址
  20. Tomcat集群---Cluster节点配置

热门文章

  1. 使用 Python 的图像隐写术
  2. 几张图看懂列式存储(转)
  3. 【2019雅礼集训】【CF 960G】【第一类斯特林数】【NTT多项式】permutation
  4. 《敏捷迭代开发:管理者指南》—第2章2.5节渐进开发和自适应开发
  5. 抢红包要当心!钱盾反诈平台专家揭秘3类假红包骗局
  6. Struts和Spring使用的模板初探
  7. android ORM框架LitePal 封装SQLite
  8. php中instanceof的使用
  9. Linux Crontab 定时任务 命令详解
  10. MAC下的反编译、反汇编和调试神器Hopper Disassembler