对于每一个点,可以找到他在x轴上的可行区域,这样的话就变为了对区间的贪心。

 #include<iostream>
#include<stdio.h>
#include<string.h>
#include<map>
#include<vector>
#include<set>
#include<stack>
#include<queue>
#include<algorithm>
#include<cmath>
#include<stdlib.h>
using namespace std;
#define MAX(a,b) (a > b ? a : b)
#define MIN(a,b) (a < b ? a : b)
#define MAXN 10000001
#define INF 1000000007
#define mem(a) memset(a,0,sizeof(a))
#define eps 1e-15 struct node{double s,t;}ma[];
double R;
int N; const int island_max=; void get_len(int index,double a,double b)
{
double temp = sqrt(R*R - b*b);
ma[index].s=a-temp;
ma[index].t=a+temp;
} int cmp(node a,node b)
{
if(a.t!=b.t)return (a.t < b.t);
return (b.s > a.s);
} int main()
{
int ca = ;
while(~scanf("%d%lf",&N,&R) && (N || R))
{
int i;
double a,b;
int flag = ;
for(i=;i<N;i++)
{
scanf("%lf %lf",&a,&b);
if(b<=R && !flag)
{
get_len(i,a,b);
}
else flag = ;
}
if(flag){printf("Case %d: -1\n",ca++);continue;}
sort(ma,ma+N,cmp);
double key = ma[].t;
int ans=;
for(i=;i<N;i++)
{
if(ma[i].s-key >eps)
{
key = ma[i].t;
ans ++;
}
}
printf("Case %d: %d\n",ca++,ans);
}
return ;
}

最新文章

  1. poj 3734 Blocks
  2. 用ORBSLAM2运行TUM Dataset数据集
  3. centos7 memcached+memagent 集群
  4. Maven项目自动生成mybaties配置文件
  5. 【转】【Android】开源项目汇总-备用
  6. phpQuery—基于jQuery的PHP实现
  7. HttpClient基本用法
  8. sql注入在线检測(sqlmapapi)
  9. 基于RealSense的坐姿检测技术
  10. Oracle数据库数据同步方案
  11. App新版本提醒
  12. NSUserDefaults偶尔/有时候保存数据会失败/失效
  13. ocp11g培训内部教材_053课堂笔记(043)_数据备份
  14. Java与算法之(6) - 八皇后问题
  15. FFmpeg源代码简单分析:libavdevice的avdevice_register_all()
  16. 轻量级.Net Core服务注册工具CodeDi发布啦
  17. (双指针) leetcode 27. Remove Element
  18. ES6标准入门之正则表达式的拓展
  19. redhat本地yum源配置
  20. Android -- MediaRecord

热门文章

  1. 1641. Duties
  2. 基于XMPP的即时通信系统的建立(五)— openfire
  3. ASP.NET Redis 开发(转载)
  4. [swustoj 785] Divide Tree
  5. C# 编写的串口通信程序
  6. Java [Leetcode 110]Balanced Binary Tree
  7. 省常中模拟 Test1 Day1
  8. RTP协议学习大总结从原理到代码
  9. addView的误区
  10. Windows Phone 离主流系统还很远