nyoj 6 喷水装置(一)【贪心】
2015-08-01 17:22
302 查看
喷水装置(一)
时间限制:3000 ms | 内存限制:65535 KB难度:3
描述 现有一块草坪,长为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
【代码】
[code]/*一个圆能覆盖的区间长度为: len = 2*sqrt(r*r-1*1) */ #include <cstdio> #include <cmath> #include <algorithm> using namespace std; const int maxn = 610; double r[610]; bool cmp(double x,double y) { return x>y; } double count(double p) { double t; t=2*sqrt(p*p-1*1); return t; } int main() { int m,n,i,c; double len; scanf("%d",&m); while(m--) { scanf("%d",&n); for(i=0;i<n;++i) scanf("%lf",&r[i]); sort(r,r+n,cmp); len=0; c=0; for(i=0;i<n;++i) { len+=count(r[i]); c++; if(len>=20) break; } printf("%d\n",c); } return 0; }
[/code]
相关文章推荐
- 轻松java学习之路3
- 【独立开发者er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势
- 【作业二】林轩田机器学习技法
- 启用欢迎屏幕时记录了失败事件
- 4000 [2015.8.1]C++学习总结
- POJ 2891 扩展欧几里德
- NYOJ 311 完全背包
- Java 内存模型及GC原理 --经典
- cocos2d-x + Lua的cc.Repeat动画执行次数不准,巨坑
- HDU杭电1276 士兵队列训练问题
- 数据结构01_数据结构基本知识介绍
- effective stl(容器部分总结)
- POJ 1182 食物链 带权并查集
- [LeetCode][Java] Clone Graph
- 关于I2C和SPI总线协议
- 十大滤波算法程序大全
- 内存映射
- HDOJ 4883 TIANKENG’s restaurant(贪心)
- gcvt(),ecvt(),fcvt()的区别
- ABAP数据字典中几个概念的关系