题目描述有些坑。。

题意:

  有一条高速公路在x轴上,从(0,0)到(L,0)。周围有一些村庄,希望能够在高速公路上开通几个出口,使得每个村庄到最近的出口距离小于D,求出最少需要开通多少个出口。

解题思路:

  典型的区间问题,将每个点化为区间(x-sqrt(D^2-y^2),x+sqrt(D^2+y^2)),然后按区间右端点排序,依次对每个区间进行操作,如果该区间中已有出口则无需增加,若该区间没有出口则取右端点为出口。

  可以证明,这是最优方案,得到最少出口数。

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#define eps 1e-6
using namespace std;
int n,ans;
double p,q,h,L,D;
struct point{double x,y;
}a[1000000];
bool cmp(point a,point b){if(a.y<b.y) return 1;return 0;
}
int main()
{
while(scanf("%lf%lf%d",&L,&D,&n)==3){for(int i=0;i<n;i++){scanf("%lf%lf",&p,&q);a[i].x=p-sqrt(fabs(D*D-q*q));a[i].y=p+sqrt(fabs(D*D-q*q));}sort(a,a+n,cmp);h=-100000;ans=0;for(int i=0;i<n;i++)if(!((h>a[i].x||fabs(h-a[i].x)<eps)&&(h<a[i].y||fabs(h-a[i].y<eps)))){h=a[i].y;if(h>L&&fabs(h-L)>eps) h=L;ans++;}printf("%d",ans);
}return 0;
}

转载于:https://www.cnblogs.com/Mathics/p/3849356.html

POJ3485 区间问题相关推荐

  1. Redis 笔记(04)— list类型(作为消息队列使用、在列表头部添加元素、尾部删除元素、查看列表长度、遍历指定列表区间元素、获取指定区间列表元素、阻塞式获取列表元素)

    Redis 的列表是链表而不是数组.这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n). 当列表弹出了最后一个元素之后,该数据结构自动被删除, ...

  2. LeetCode简单题之汇总区间

    题目 给定一个 无重复元素 的 有序 整数数组 nums . 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 .也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范 ...

  3. FhqTreap的区间翻转

    学 Fhq 就是为了尽量不去写某毒瘤数据结构,所以自然要来杠一杠某数据结构的经典操作:区间反转 听起来玄乎,但只需要一个小 trick 就行了:把原来的区间以下标作为权值建成 Treap , 这样整棵 ...

  4. 【基本操作】主席数统计区间不同颜色个数

    例题:询问 $n$ 个数中无修改的区间不同数个数,不带修改(SPOJ的一道题). 方法1:直接删 我们尝试头铁地开正常的下标主席树! 依次插入 $n$ 个数,插入第 $i$ 个数时,我们只要在把第 $ ...

  5. 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树

    题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...

  6. hdu 2665(主席树查询区间k大值)

    先贴我自己写的代码做模板虽然跟原博主没什么两样.(一开始空间开的4*maxn,交到hdu上一直TLE很奇怪) #include<bits/stdc++.h> using namespace ...

  7. mysql 数字区间_币投君0904丨数字货币暴跌原因何在

    昨日数字货币再次集体闪崩,btc甚至刺穿10000大关,合约帝数据显示,过去 24 小时全网爆仓超过 10 亿美元,共有 6.7 万人成为爆仓受害者.究其原因主要有两个方面:一方面是昨晚美股暴跌,三大 ...

  8. Awcing算法---区间合并

    #include <iostream> #include <algorithm> #include <vector> using namespace std; ty ...

  9. HDU - 3911 Black And White 区间翻转+区间连续最长

    区间翻转的裸题,wrong了两发,没找bug,直接又打了一遍,这么大量的代码找bug是疯了. 重新开始做线段树的一些题了,感觉对于pushdown与lazy数组有点印象了. 首先,lazy数组是记录的 ...

最新文章

  1. NanoPi NEO Air使用十二:使用自带的fbtft驱动点亮SPI接口TFT屏幕,ST7789V
  2. 101个MySQL的调节和优化的Tips
  3. python批量查询数据库_Python + MySQL 批量查询百度收录
  4. C/C++控制台应用程序——画三角形、圆、直线、矩形
  5. 【java】dubbo基础学习
  6. sqlalchemy mysql_SQLAlchemy(1)
  7. 重写报销流程,责任链模式实现
  8. Linux iostat和vmstat命令
  9. 倾斜摄影实景三维建模效果不好?可能有这些原因!
  10. 系统分区 ,硬盘格式化,
  11. 0 最优化问题数学概念补充
  12. 【免费】文字转换语音合成软件地摊叫卖录音真人配音广告制作朗读播音软件
  13. 现场抽奖小程序_抽奖小程序助手转盘活动微信抽奖系统
  14. i春秋web-Backdoor(.git泄露、vim备份泄露、代码审计)
  15. 360 mysql无法启动_mysql无法启动
  16. 贪心问题(Python代码实现)——磁带最优存储问题
  17. 老照片特效 php,ps老照片效果
  18. 解除封闭、寒假延长!多校发通知!
  19. Mysql语句编写循环
  20. python求e的x次方

热门文章

  1. Cacls命令使用格式
  2. 鸿蒙分布式体验,一张图看懂鸿蒙OS 2.0 分布式能力升级构筑全场景体验
  3. ajax保存乱码,Ajax 乱码详细
  4. golang 切片 接口_如何理解Golang中的接口?
  5. 移动端拖拽排序 html,移动端拖拽排序
  6. 鸿蒙系统下载 绿色,PGWARE PcMedik
  7. mysql 子查询模糊匹配_sql中的查询(模糊查询,子查询,联表查询)
  8. javascript中本地储存、离线缓存、地理定位、网络状态
  9. 2021巨量引擎UGC互动营销白皮书
  10. 实例讲解策略产品经理工作内容