博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-1328 Radar Installation 贪心
阅读量:6645 次
发布时间:2019-06-25

本文共 1287 字,大约阅读时间需要 4 分钟。

以每个点算出左右覆盖的雷达所在x轴范围,然后贪心计算出所需圆的个数。

当后一个点的圆心在x轴的左坐标在前一个点的右坐标的右坐标之前,则这个点就会被覆盖。

代码如下:(C++能过,G++ runtime error)

#include 
#include
#include
#include
#include
using namespace std;int N, R;struct Node{ double l, r; bool operator < (Node t) const { if (r != t.r) { return t.r > r; } }}e[1010];int deal(){ int ans = 1; double pos = e[1].r; for (int i = 2; i <= N; ++i) { if (e[i].l > pos) { ++ans; pos = e[i].r; } } return ans;}int main(){ int x, y, flag, ca = 0; while (scanf("%d %d", &N, &R), N|R) { flag = 0; for (int i = 1; i <= N; ++i) { scanf("%d %d", &x, &y); if (y > R) { flag = 1; } else { double dis = sqrt(double(R*R-y*y); e[i].l = x - dis; e[i].r = x + dis; } } printf("Case %d: ", ++ca); if (flag) { puts("-1"); } else { sort(e+1, e+1+N); int t = deal(); printf("%d\n", t); } } return 0;}

转载于:https://www.cnblogs.com/Lyush/archive/2012/06/28/2568855.html

你可能感兴趣的文章
convert Timestamp to Real time
查看>>
git command
查看>>
开发者应该避免使用的6个Java功能(转)
查看>>
MySQL MyISAM和InNodb备份与恢复技巧
查看>>
智普教育Python视频教程之入门基础篇,python笔记
查看>>
art-template用户注册方法
查看>>
java向文件写数据的3种方式
查看>>
php中session锁--如何防止阻塞请求(译)
查看>>
【Xamarin挖墙脚系列:Xamarin.Android的API设计准则】
查看>>
CodeFirst时使用T4模板
查看>>
MyBatis2:config.xml文件
查看>>
inux redis 安装配置, 以及redis php扩展
查看>>
CSS中常见的6种文本样式
查看>>
【简易版】IOS仿periscope自制狂赞飘桃心
查看>>
Touch Devices
查看>>
python中的反射
查看>>
IOS各种集合遍历效率对比
查看>>
IL指令大全
查看>>
开源:ASP.NET Aries 开发框架(已支持.NET Core)
查看>>
Atitit.100% 多个子元素自适应布局属性
查看>>