NYOJ 6 喷水装置(一) 贪心算法 之 区间覆盖问题
喷水装置(一)
- 描述
-
现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。
- 输入
-
第一行m表示有m组测试数据
每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。 - 输出
- 输出所用装置的个数
- 样例输入
-
2 5 2 3.2 4 4.5 6 10 1 2 3 1 2 1.2 3 1.1 1 2
- 样例输出
-
2 5 根据日常生活知道,选择半径越大的装置,所用的数目越少。因此,可以先对半径排序,然后选择半径大的。另外,当装置刚好喷到矩形的顶点时,数目最少。此时只要装置的有效喷水距离的和不小于20时,输出此时的装置数目即可。
-
AC代码:
-
#include<stdio.h> #include<math.h> int main() {double r[600],w,t;int m,n,i,j,count;scanf("%d",&m);while(m--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%lf",&r[i]);for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(r[i]>r[j]){t=r[i];r[i]=r[j];r[j]=t;}count=0;w=20;for(i=n-1;w>=0;i--){w=w-2*sqrt(r[i]*r[i]-1);count++;}printf("%d\n",count);}return 0; }
NYOJ 6 喷水装置(一) 贪心算法 之 区间覆盖问题相关推荐
- 贪心算法无重叠区间c语言,贪心算法之区间问题.md
--- title: 贪心算法之区间问题 tags: - Leetcode categories: - Leetcode author: 四叶草 top: false abbrlink: 26230 ...
- 贪心算法之区间取点问题
贪心算法之区间取点问题 题目描述: Assume the coasting is an infinite straight line. Land is in one side of coasting, ...
- 贪心算法:区间调度-射气球问题
贪心算法:区间调度问题 母问题描述: 在一个会场中,安排活动,给定所有活动的开始时间与结束时间的集合放在数组nums[n][2]中.求问最多能安排几场活动,使每场活动之间的时间不冲突. public ...
- 贪心算法【区间调度】【背包问题】【集合覆盖】【旅行商问题】【哈夫曼构造价值树】
贪心算法 在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择, ...
- 三类基于贪心思想的区间覆盖问题
一.区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖. 样例:一个长度为8的区间,可选的线段有[2,6], ...
- Algorithm:贪心策略之区间覆盖问题
Describe: 给定一个大区间1-T,以及n个小区间,要求用最少个数的小区间来覆盖大区间: Input: 第一行,输入n和T: 随后n行输入对应区间的起始终止坐标 Output: 输出覆盖区间1- ...
- 贪心算法:集合覆盖问题
文章目录 贪心算法 教室调度问题 背包问题 集合覆盖问题 NP完全问题 总结 贪心算法 贪心算法是一种解决问题的思路:每一步选择局部最优解,最终也许不会得到最优结果,但是也会接近最优结果. 贪心算法具 ...
- 贪心算法——合并区间(Leetcode 56)
题目选自Leetcode56 思路 大家应该都感觉到了,此题一定要排序,那么按照左边界排序,还是右边界排序呢? 都可以!排序之后就是贪心思想了~~ 题目 给出一个区间的集合,请合并所有重叠的区间. 示 ...
- 算法基础复盘笔记Day12【贪心算法】—— 区间问题、Huffman树、排序不等式、绝对值不等式、推公式
❤ 作者主页:欢迎来到我的技术博客
最新文章
- 怎么在vs2010中使用ActiveX Test Container(转)
- Ajax请求全局配置
- android url webview,android - webview获取到当前页面的url
- Vue如何获取当前时间
- 超实用!K8s 开发者必须知道的 6 个开源工具
- 定义一个圆类——Circle,在类的内部提供一个属性:半径(r),同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。
- perl 安装GD 出错解决方案
- linux查看r的安装路径,在Linux CentOS 6.5版上安装R3.1.1的问题(检查LDFLAGS以获取Fortran库的路径)...
- 中台是个筐,啥都往里装?
- MONGODB 与sql聚合操作对应图
- SimpleXML系列函数操作XML
- Assetbundle coustomerScripts
- 35-BigDecimal详解
- 【超图+CESIUM】【基础API使用示例】45、超图|CESIUM - 点光源设置
- php自我介绍50字,简短自我介绍50字
- 批处理文件获取计算机ip,批处理获取本机IP地址及MAC地址,输出到文件
- 别再让「聪明」害了00后!
- JavaSE进阶之(十)Map 子接口之 ConcurrentHashMap
- android 扫码枪 字符数少掉,BarTender条码字符数莫名变少是怎么回事?
- 网页+微信小程序UI设计及前端开发(第二周)