poj 3485 区间选点
题目链接:http://poj.org/problem?id=3485
题意:X轴上公路从0到L,X轴上下有一些点给出坐标代表村庄,问在公路上最少建几个出口才能使每个村庄到出口的距离不超过D。
以村庄为圆心,半径为 d 画圆,与公路相交,得到一个一个区间,这么选点呢?
按照区间右端点排序,第一个点,选择第一条线段的右端点,当前位置就在这里,已经(很)靠后了,拿这个点去查看以后的线段,看是不是符合。
1 #include <cstdio> 2 #include <cmath> 3 #include <algorithm> 4 5 using namespace std; 6 7 const int maxn = 10005; 8 9 struct Point 10 { 11 double x,y; 12 } points[maxn]; 13 14 struct Line 15 { 16 double x,y; 17 } lines[maxn]; 18 19 bool cmp(Line a,Line b) 20 { 21 return a.y < b.y; 22 } 23 24 int main() 25 { 26 double s; 27 double d; 28 while(~scanf("%lf%lf",&s,&d)) 29 { 30 int n; 31 scanf("%d",&n); 32 for(int i=0; i<n; i++) 33 { 34 scanf("%lf%lf",&points[i].x,&points[i].y); 35 lines[i].x = points[i].x - sqrt(d*d-points[i].y*points[i].y); 36 lines[i].y = points[i].x + sqrt(d*d-points[i].y*points[i].y); 37 } 38 39 sort(lines,lines+n,cmp); 40 int ans = 1; 41 double cur = lines[0].y; 42 for(int i=1; i<n; i++) 43 { 44 if(cur>=lines[i].x&&cur<=lines[i].y) 45 continue; 46 else 47 { 48 cur = lines[i].y; 49 ans++; 50 } 51 } 52 53 printf("%d\n",ans); 54 } 55 return 0; 56 }
View Code
转载于:https://www.cnblogs.com/TreeDream/p/6636667.html
poj 3485 区间选点相关推荐
- 【贪心策略】区间选点问题
问题描述: Description You are given n closed, integer intervals [ai, bi] and n integers c1,-, cn. Write ...
- NYOJ 287 Radar 贪心之 区间选点
Radar 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Assume the coasting is an infinite straight line. Land ...
- 贪心法——区间选点问题
贪心法--区间选点问题 区间选点问题.数轴上有nn个闭区间[ai,bi][a_i, b_i].取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个). 贪心思想:先按bb从小到大进 ...
- 【贪心】AcWing 803. 区间选点
905. 区间选点 文章目录 题目描述 输入格式: 输出格式: 数据范围 输入样例 输出样例 方法:贪心 解题思路 代码 复杂度分析: 题目描述 给定 N 个闭区间 [ a i , b i ] [a_ ...
- 贪心算法——区间选点问题
转载:https://blog.csdn.net/xia842655187/article/details/51944763 区间选点的问题大致可以描述为: 给定N个区间[a,b],取尽量少的点,使 ...
- 【48. 贪心(区间选点)】
区间选点与最大不相交区间数量代码一样 思路 将每个区间按照右端点从小到大进行排序 从前往后枚举区间,end值初始化为无穷小 如果本次区间不能覆盖掉上次区间的右端点, ed < range[i]. ...
- [AcWing] 905. 区间选点(C++实现)贪心---区间问题例题
[AcWing] 905. 区间选点(C++实现)贪心---区间问题例题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. ...
- acwing 905 区间问题-区间选点
Acwing 905. 区间选点 题目描述 给定 N 个闭区间 [ai,bi] ,请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点. 输出选择的点的最小数量. 位于区间端点上的点也算作区 ...
- 简单区间问题 选择不相交区间 区间选点 区间覆盖问题解答及代码 C++
1. 选择不相交区间 数轴上有n个开区间 ( a i , b i ) (a_i, b_i) (ai,bi).选择尽量多个区间,使得这些区间没有公共点. 这是最简单的区间问题,很多区间问题都需要先排 ...
最新文章
- [设计模式随意链接]——命令模式
- Python 笔试集(2):你不知道的 Python 整数
- java 事件驱动 netty_Netty2-事件驱动的NIO框架(使用范例)
- Redis源码:朴实无华且枯燥
- 【Leetcode | 11】268. 缺失数字
- centOs 7.2*64 ECS nginx安装教程
- python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
- BUUCTF Web [GXYCTF2019]Ping Ping Ping
- 动真格!阿里云刚说缺 5000 程序员,今天就来抢人!
- hadoop2.9.2安装hadoop_pid_dir_Hadoop3.2 +Spark3.0全分布式安装
- php包含大马执行,对于某个PHP大马的分析
- 【信号检测】基于matlab双稳随机共振微弱信号检测【含Matlab源码 1701期】
- java kaptcha,java验证码组件kaptcha使用方法
- 计算机网络路由器的配置连接不上,路由器安装设置好后电脑还是不能上网解决办法...
- 快手公布于香港联交所主板上市计划详情,拟融资394.77亿港元
- Axure rp9 中继器新建表格
- FCAA答题练习收集记录
- nexus在docker安装nexus与初始密码问题
- pytorch——VGG网络搭建
- 如何为Exchange 2010 用户添加联系人头像
热门文章
- 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused
- LeetCode 2095. 删除链表的中间节点(快慢指针)
- fastapi 模式的额外信息,示例 / Cookie参数 / Header参数
- LeetCode 1671. 得到山形数组的最少删除次数(最长上升子序DP nlogn)
- 程序员面试金典 - 面试题 16.17. 连续数列(DP/分治)
- 程序员面试金典 - 面试题 04.03. 特定深度节点链表(BFS)
- LeetCode 70. 爬楼梯(动态规划)
- python3之批量修改文件名称
- python分段函数图像画法_我想用Python matplotlib 画一个这样类似的图像,需要用到分段函数。大佬帮帮这个小弟?...
- 用python生成云词汇_用python生成词云wordcloud