Radar Installation(利用数据有序化进行贪心选择)
2024-09-06 00:37:30
English appre:
an infinite straight line:一条无限长的直线
on the coasting:在海岸线上
Cartesian coordinate system,
题目地址:http://poj.org/problem?id=1328
我的代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; struct dao
{
double x,y;
}da[10000];
bool cmp(dao a,dao b)
{
return (a.y<b.y)||(a.y==b.y && a.x>b.x);
} int main()
{
int n,d;
double x1,y1;
int k=0;
while(~scanf("%d%d",&n,&d)&&(n||d))
{
int ans=1;
for(int i=0;i<n;i++)
{
scanf("%lf%lf",&x1,&y1);
da[i].x=x1-sqrt((double)d*(double)d-(double)y1*y1);
da[i].y=x1+sqrt((double)d*(double)d-(double)y1*y1);
if((d-y1)<0||d<=0) ans=-1;
} if(ans==-1)
{
printf("Case %d: -1\n",++k);
continue;
}
else
{
sort(da,da+n,cmp);
double t1=da[0].y;
for(int i=1;i<n;i++)
if(da[i].x>t1)//要是用=号,有些数据不可通过。
{
ans++;
t1=da[i].y;//更新右范围
}
printf("Case %d: %d\n",++k, ans);
}
}
}
最新文章
- 操作系统核心原理-7.设备管理:I/O原理
- ThinkPHP动态版本控制
- 一些随机数据的生成(日期,邮箱,名字,URL,手机号,日期等等)
- js 闭包演示
- 使用pt-fifo-split 工具往mysql插入海量数据
- response对象详解
- JS获取IP、MAC和主机名的五种方法
- 剑指offer-面试题17.合并两个排序的链表
- YARN的笔记
- 关于CPU CACHE工作机制的学习
- Linux学习笔记14—文件的压缩与打包
- ubuntu 调节音量命令 声卡驱动
- PLSQLDeveloper_免安装自带client
- tinyint、smallint、bigint、int 区别
- EntityFramework安装和EF升级方法
- linux ,cron定时任务 备份mysql数据库
- Asp SqlDataSource将数据库数据绑定在 GridView
- C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)
- “好奇号”火星车和它搭载的软件(来自Erlang程序员的观点)
- Pycharm关闭后Python.exe还是在后台运行
热门文章
- (LNMP) Nginx_PHP_MariaDB
- 第3章 关系数据库标准语言SQL(重点) | 数据库知识点整理
- VSCode常用插件之ESLint使用
- sql查询如何将A表数据name字段对应B表name字段得到对应的B表id主键然后添加A到表usel_id中
- Spring Boot源码(一):去除web.xml
- kali linux中mariadb加上密码
- 2019kali中文乱码
- Python函数装饰器
- PIE-SDK For C++矢量数据空间索引的创建
- Android开发长按菜单上下文菜单