Wannafly挑战赛6 A 完全平方数【预处理 + 二分】
2017-12-22 21:11
232 查看
A 完全平方数
题目描述
多次查询[l,r]范围内的完全平方数个数定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x
输入描述:
第一行一个数n表示查询次数之后n行每行两个数l,r
输出描述:
对于每个查询,输出一个数表示答案示例1
输入
51 3
1 4
2 4
4 4
1 1000000000
输出
12
1
1
31622
备注:
n <= 1000000<= l <= r <= 1000000000
题意:略
分析:预处理出来1e9以内的平方数,然后二分查找即可,别忘记0.
参考代码
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5 + 10; vector<ll> a; void init() { a.push_back(0); for(ll i = 1;i*i <= 1000000000;i++) { a.push_back(i*i); } } int main() { init(); int T;cin>>T; while (T--) { ll r,l;cin>>l>>r; int res = upper_bound(a.begin(),a.end(),r) - lower_bound(a.begin(),a.end(),l); cout<<res<<endl; } return 0; }
如有错误或遗漏,请私聊下UP,thx
相关文章推荐
- Wannafly挑战赛11 B 白兔的式子【阶乘逆元 + 预处理 + 板子】
- Wannafly挑战赛3 C.位数差(二分+树状数组)
- 【Wannafly挑战赛1 】B Xorto 【思维+二分】
- Wannafly挑战赛1 B.Xorto【思维+二分】
- wannafly挑战赛5 A(完全平方数)
- Wannafly挑战赛1B-(二分)
- Wannafly挑战赛3-C-位数差(二分)
- Wannafly挑战赛3 C.位数差【思维+离散化+二分+树状数组】
- Wannafly挑战赛6 A(二分)B(dfs)C(公式推导)D(思维)E(技巧)
- Wannafly挑战赛9 C - 列一列
- 【Wannafly挑战赛9】~D 造一造
- HDU 5878 I Count Two Three (预处理+二分查找)
- BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )
- 蓝桥杯 历届试题 矩阵翻硬币 【大数 + 完全平方数 + 二分】
- Wannafly挑战赛11 - 白兔的分身术
- bzoj2440 完全平方数 莫比乌斯值+容斥+二分
- wannafly挑战赛11----白兔的字符串
- Wannafly挑战赛12 B - T95要减肥 dp
- Two strings CodeForces - 762C(二分+预处理)
- Wannafly挑战赛12 C 删除子串【经典dp】