[51Nod](1278)相离的圆 ---- 二分查找
平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的。
例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} {2, 3} {2, 4} {3, 4}这5对都有交点,只有{1, 4}是相离的。
Input
第1行:一个数N,表示圆的数量(1 <= N <= 50000)
第2 - N + 1行:每行2个数P, R中间用空格分隔,P表示圆心的位置,R表示圆的半径(1 <= P, R <= 10^9)
Output
输出共有多少对相离的圆。
Input示例
4
1 1
2 1
3 2
4 1
Output示例
1
思路: 由于圆心都在y轴上,所以我们可以把圆转化为线段,线段的前端点为pre,后端点post,然后按pre从小到大排序。利用二分找到第一个大于每一个线段pre的位置即可。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{#ifdef LOCALfreopen("in.txt","r",stdin);#endif //LOCALios_base::sync_with_stdio(false);cin.tie(NULL),cout.tie(NULL);int n;cin>>n;int a,b;vector<int> pre,post;for(int i=0;i<n;i++){cin>>a>>b;pre.push_back(a-b);post.push_back(a+b);}sort(pre.begin(),pre.end());int ans = 0;for(int i=0;i<n;i++)ans+=pre.end()-upper_bound(pre.begin(),pre.end(),post[i]);cout<<ans<<endl;return 0;
}
[51Nod](1278)相离的圆 ---- 二分查找相关推荐
- 51nod 1278 相离的圆 二分+排序
1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个 ...
- 51NOD 1278 相离的圆(二分 + 排序 好题)
平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...
- 51nod 1278 相离的圆
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, ...
- 51Nod 1278 相离的圆 c/c++题解
题目描述 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1 ...
- 51nod 1278 相离的圆 (排序)
平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...
- 51Nod 1278 相离的圆(好题)
题目链接 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1 ...
- 【51nod】---1278 相离的圆(二分排序)
题目链接:题目 1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多 ...
- 1278 相离的圆(任务调度,贪心)
平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...
- 51nod-1278 相离的圆
1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离 ...
最新文章
- 禁止页面复制功能 js禁止复制 禁用页面右键菜单
- java获取24小时制时间格式_java 日期格式时间24小时制
- mysql workbench中删除数据表记录提示出错的问题
- Test live writer
- 莫比乌斯反演 做题记录
- 在SpringMVC中使用拦截器(interceptor)拦截CSRF***
- tornado-ioloop-async-io
- 【Golang】关于从切片中删除某个元素时会覆盖底层数组的说明
- JDK的KeyTool和KeyStore等加密相关
- IE8下window.open出现的bug
- creo图纸管理系统 creo企业图纸管理方案
- Linux系统中RPS/RFS介绍
- Microsoft SQL Server Reporting Services 初探
- 论文学习——洪水预报实时校正技术研究进展
- 往word表中写数据
- android apk可安装成功但无法运行提示dex文件异常
- ubuntu共享文件夹不显示及设备空间不足解决[随手笔记]
- P3793礼物和糖果
- 致互联网人:一篇文章让你了解互联网公司的职位架构以及职能要求
- Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk
热门文章
- 越优秀越受排挤,牢记这“三句土话”,再艰难也要打好自卫反击
- 2011年五一江西萍乡武功山--绿郁葱葱的连绵高山草甸,漂亮
- [省选前题目整理][清橙A1303]tree(LCT)
- 蓝桥杯 ALGO-1003 礼物
- python 绘制正弦余弦函数 matplotlib的基本使用
- NLP与对比学习的巧妙融合,简单暴力效果显著!
- SD SDHC SDXC
- 自建服务器和购买云服务器的过程总结
- java和大行自行车哪个好_全面解析曝光大行折叠自行车d8和p8配置有什么区别?哪个好?优缺点内幕透露...
- LOL手游登上去服务器维护,lol手游进不去怎么回事?无法登陆解决方法