POJ 1328
2016-05-10 00:50
369 查看
题意:给你n个海岛,一个d,代表雷达范围,每个海岛的坐标,现在你只能在x轴上建雷达,问探测到所有海岛最少需要多少个雷达,如果不能探测到所有的,输出-1。
做法:贪心,将每个灯塔预处理为[l,r]范围,然后问题就变成了,给你n个区间,用最少的点使得所有的区间都至少含有一个点。
做法:贪心,将每个灯塔预处理为[l,r]范围,然后问题就变成了,给你n个区间,用最少的点使得所有的区间都至少含有一个点。
#include<iostream> #include<stdio.h> #include<algorithm> #include<math.h> using namespace std; struct node{ double x,y; }e[1005]; bool cmp(node a,node b){ return a.x<b.x; } double a[1005]; int main(){ int n,i,j,csa=1; double d,x,y; while(cin>>n>>d){ if(n==0&&d==0)break; int flag=1; for(i=1;i<=n;i++){ scanf("%lf%lf",&x,&y); e[i].x=x-sqrt(d*d-y*y); e[i].y=x+sqrt(d*d-y*y); if(y>d)flag=0; } sort(e+1,e+1+n,cmp); int cnt=1; cout<<"Case "<<csa++<<": "; if(!flag)cout<<"-1"<<endl; if(!flag)continue; node temp=e[1]; for(i=2;i<=n;i++){ if(e[i].x>temp.y){ cnt++; temp=e[i]; } else if(e[i].y<temp.y){ temp=e[i]; } } cout<<cnt<<endl; } return 0; }
相关文章推荐
- hibernate中的乐观锁和悲观锁
- qt的字体和颜色设置对话框
- The connection to adb is down, and a severe error has occured. 解决方法
- ssi整合,即spring、springmvc、mybatis终极整合,包括一些优化
- 算法-KMP-跳跃的证明
- ubuntu qt QTableWidget
- Provisioning Services 7.8 入门系列教程之十 通过类自动更新虚拟磁盘
- Provisioning Services 7.8 入门系列教程之十 通过类自动更新虚拟磁盘
- SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]
- MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart
- 【转】requirejs的用法
- hdu5126stars
- json与xml的区别,优缺点
- Tiny微信框架是怎样设计的?
- 2016.5.9 新未来-人工智能论坛
- 99_java继承体系
- PDF安全模式破解的简单办法
- [leetcode 344]Reverse String
- 贝叶斯决策理论
- null和""的区别详解