NYOJ6——喷水装置(一)(贪心)
题目描述:
现有一块草坪,长为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
思路:由于装置是放在中间的,所以半径为r的圆覆盖的长为2*sqrt(r*r-1);画个图就知道了。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int compare(const void * a, const void * b);
int main()
{
double a[600];
double r = sqrt(2.0);
double y;
int n,t;
int i;
scanf("%d",&t);
while(t--)
{
y = 20.0;
scanf("%d",&n);
for(i = 0; i < n; ++i)
scanf("%lf",&a[i]);
qsort(a,n,sizeof(double),compare);
i = 0;
while(y > 0 && i < n)
{
y -= 2 * sqrt(a[i] * a[i] - 1.0);
++i;
}
printf("%d\n",i);
}
}
int compare(const void *a, const void *b)
{
//降序排列
double *p1 = (double *)a;
double *p2 = (double *)b;
if(*p2 - *p1 > 0.00001)
return 1;
else if(*p2 - *p1 < -0.00001)
return -1;
else
return 0;
}
NYOJ6——喷水装置(一)(贪心)相关推荐
- NYOJ6——喷水装置(一)
喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述:现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它 ...
- 提高篇 第一部分 基础算法 第1章 贪心算法
一本通提高篇在线提交地址 一本通提高篇在线提交地址_老象的专栏-CSDN博客 [ 贪心 进阶总结 ][ 来自一本通提高篇 ] [ 贪心 进阶总结 ][ 来自一本通提高篇 ]_violinwang-CS ...
- 算法训练一(贪心、二分)(含解题思路)(上)
目录 7-1最少失约(贪心) AC代码: 7-2删数问题(贪心) 7-3区间覆盖(贪心) AC代码: 7-7加油站之最小加油次数(贪心+优先队列) AC代码: 7-8求解删数问题(贪心) AC代码: ...
- 贪心算法之——喷水装置一(nyoj6)
描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1& ...
- 贪心算法之——喷水装置二(nyoj12)
题目描述: 喷水装置(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000) ...
- 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题...
1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...
- NYOJ6 之喷水装置(一)
http://acm.nyist.net/JudgeOnline/problem.php?pid=6 java1: 主要用到贪心算法. 由题目很明显可以得出只要是半径大于1的喷水装置都是可以被选中的, ...
- NYOJ-6:喷水装置(一)
描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1& ...
- NYOJ 6 喷水装置(一) 贪心算法 之 区间覆盖问题
喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为 ...
最新文章
- Redis源码解析——双向链表
- 后悔没早知道这些Python特性
- java中的数据库事务处理
- 遇到一个由于事务控制不当造成错误的Bug
- 【小练习02】CSS--网易产品
- 从函数计算架构看 Serverless 的演进与思考
- h3csnmp管理命令_H3C S5500V2-EI系列以太网交换机 命令参考-Release 1118-6W100_网络管理和监控命令参考_SNMP命令-新华三集团-H3C...
- winform代码生成器(三)
- zoom 用户被锁定_重新考虑Zoom的用户体验
- 功能Java示例 第5部分–将I / O移到外部
- 安装软件包的三种方法 ,rpm包介绍 , rpm工具用法, yum工具用法, yum搭建本地仓库...
- phpexcel常见问题的解决办法
- 【转】VB代码VB小程序:宇宙大爆炸演示
- 基于Stm32F746g_disg平台下移植zephry使用TinyML预测模型
- Android Textview实现文字颜色渐变效果
- springboot mybatis 后台框架平台 集成代码生成器 shiro 权限
- 在linux配置端口映射,Linux 配置端口映射
- php bi系统,bi系统是什么系统
- python分析数据的相关性_使用Python进行相关性分析
- 陈年咖啡豆是什么?陈年咖啡能喝吗?陈年咖啡有什么特别的?
热门文章
- Java基层卫生健康云源码 医院HIS信息管理系统源码
- python builtwith识别网站所用技术
- maven test的覆盖率测试
- SpringBoot Bean加载顺序 Order无效
- Failed to execute child process duplicity (No such file or directory)错误解决
- 【BZOJ 2823】 [AHOI2012]信号塔
- python主成分分析法
- mssql和mysql那个好_mssql与mysql的有什么区别?哪个更好用?
- echart横坐标太长导致坐标显示不完全(三种方法)
- 全套医疗预约挂号小程序+管理后台Axure高保真原型