平面上有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
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=50000+100;
struct node
{int l;int r;
} a[maxn];
int b[maxn];
bool cmp(node x,node y)
{if(x.l<y.l) return true;else if(x.l==y.l && x.r<y.r) return true;return false;
}int main()
{int ans,n,i,j,x,r,t1,t2,t3;cin>>n;for(i=0;i<n;i++) {cin>>x>>r;a[i].l=x-r;a[i].r=x+r;}ans=0;sort(a,a+n,cmp);for(i=0;i<n;i++) b[i]=a[i].l;for(i=0;i<n;i++) {t1=a[i].r;t2=upper_bound(b,b+n,t1)-b;ans+=n-t2;}cout<<ans<<endl;return 0;
}

51nod 1278 相离的圆 (排序)相关推荐

  1. 51nod 1278 相离的圆 二分+排序

    1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个 ...

  2. 51NOD 1278 相离的圆(二分 + 排序 好题)

    平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...

  3. 51nod 1278 相离的圆

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, ...

  4. [51Nod](1278)相离的圆 ---- 二分查找

    平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...

  5. 51Nod 1278 相离的圆 c/c++题解

    题目描述 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1 ...

  6. 51Nod 1278 相离的圆(好题)

    题目链接 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1 ...

  7. 【51nod】---1278 相离的圆(二分排序)

    题目链接:题目 1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多 ...

  8. 1278 相离的圆(任务调度,贪心)

    平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} ...

  9. 51nod-1278 相离的圆

    1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离 ...

最新文章

  1. Java开发的环境搭建
  2. webpack4.x配置
  3. 选文可以学计算机专业,是不是文理科都可以报计算机专业?
  4. mysql数据库-1.文件导入mysql表secure_file_priv报错问题解决 mysql select outfile不能导出亲测
  5. Linux_linux基础命令(增删查,权限,Linux下的重要目录,重要命令(. du, df, top, free, pstack, su, sudo).安装gcc/g++, gdb, vim )
  6. serial port 的操作
  7. 划分用户故事(user-story)的原则
  8. 大学物理上册详细笔记_干货满满!快来pick自哈军工以来的学霸笔记!
  9. java加载失败是什么原因_这个加载失败是什么问题呢
  10. Android开发入门案例
  11. Multisim使用入门教程
  12. ZZULIOJ 1047: 对数表,Java
  13. 台式计算机能装蓝牙吗,台式机如何安装蓝牙
  14. Maya模型Fbx材质有贴图却不显示
  15. SCI论文写作常用词汇短语总结
  16. 入门安全测试需要知道什么?需要掌握哪些知识?
  17. 万字长文,图文并茂的给你讲清SpringBoot注解,自动装配原理!
  18. JavaScript中的new操作符的原理解析
  19. 6.RokcketMQ消息重试与死信队列
  20. DPDK官方文档说明

热门文章

  1. ubuntu 16.04 无法连接wifi
  2. CAD中插入外部参照字体会变繁体_CAD绘图外部参照的使用方法
  3. 【听】红高粱,莫言经典诺贝尔文学奖小说
  4. 移动硬盘读不出来,无法识别的6种修复方法
  5. PAT乙级1024科学记数法c++实现
  6. java,mysql,oracle出现科学记数法问题
  7. vue使用vue-video-player播放视频及遇到的问题
  8. 教程篇(5.4) 03. FortiManager 设备注册 ❀ Fortinet 网络安全专家 NSE5
  9. 3、SYN-SENT
  10. java qt gui_工控编程,Qt 学习之路