喷水装置(一)

喷水装置(一)

时间限制: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

01.#include <iostream>

02.#include <cmath>

03.#include <algorithm>

04.using namespace std;

05. 

06.int main()

07.{

08.int t;

09.cin >> t;

10. 

11.while (t--)

12.{

13.int n, i;

14.cin >> n;

15. 

16.float *r = new float[n];

17.for (i = 0; i < n; i++)

18.cin >> r[i];

19.sort(r, r+n, greater<float>());//指定从大到小排序

20.//for (i = 0; i < n; i++)

21.// cout << r[i] << " ";

22.//cout << endl;

23. 

24.double width = 0;

25.i = 0;

26.while (width - 20 < 1e-9 && i < n)

27.{

28.width += sqrt(r[i] * r[i] - 1 * 1) * 2;

29.i++;

30.}

31.cout << i << endl;

32. 

33.delete [] r;

34.}

35.return 0;

36.}

 

时间: 2024-08-04 10:20:17

喷水装置(一)的相关文章

NYOJ 6(喷水装置)

#include<stdio.h> #include<stdlib.h> #include<math.h> int cmp(const void *a,const void *b) { return *(int *)b-*(int *)a; } int main() { int T,num;int i,j,k,p; float s,sum,a[600]; scanf("%d",&T); while(T--) { scanf("%d&

UVa 10382:Watering Grass

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1323 原题: n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each sprinkler is installed

理解偏倚:可靠结果的先决条件

◆ ◆ ◆ 前言 事实证明用数据从事一些非常合理的事情是非常容易的,比如求合,做切片,求均值等,而得出的答案却有2000%的错误!在这篇文章中,我想通过使用一些非常简单,直观的图片来说明为什么是这样的.为了解决这个问题,我们用由Judea Pearl(其他提出者之一)提出的框架来设计一个非常棒的通用模型. 除了满足我们的好奇心(无法估量的价值),我们会慢慢明白为什么设计这个精准模型这么有价值.就某种情况而言,毕竟我们真正感兴趣的是一个变量对另一个变量的影响.当然,你也会问,是否你真的需要一个这样

涡轮增压和机械增压都分不清,还敢自称老司机?

最近几年,越来越多的汽车厂商加入了涡轮增压大家庭,从承诺过"自然进气"的本田,宝马到V12引擎靠自然进气排气做出天籁之声的法拉利都逐步重拾或者说新开发了涡轮增压的机器.不少看官们惊呼,涡轮增压的时代来临了,涡轮增压好啊等等.那么机械增压呢? 同一时期,不少车厂却慢慢放下了自己擅长使用的"兵刃"机械增压,都耍起了涡轮增压这柄"大刀".最明显的便是以机械增压入市的奔驰高性能分部AMG,一掉头使用了涡轮增压. 当然,今天我们不是简单的来探讨双方孰优孰劣

uva 10382 - Watering Grass

点击打开链接uva 10382 题目意思:     有一块草坪,长为l,宽为w  ,在它的中心线上装有n个点状的喷水装置 , 效果是让以它为中心半径为ri的圆被润湿  , 选择尽量少的喷水装置把整个草坪全部润湿. 解题思路:   1:贪心,区间覆盖 2:这道题就是一个区间覆盖的变形,只是没有那么的直观而已.刚开始区间求错了,直接求出最左边和最右边的左边以此来作为区间端点,后来WA了近20次才发现考虑错了,嗨,只怪自己思维不够严谨.真正的区间求法是,把这个圆和这个矩形两边的交点的横坐标求出来就是区

印度研发太阳能树实现全方位光伏发电

太阳能发电装置占用相当的土地面积,是制约太阳能发展的主要瓶颈.为此,印度科学与工业研究理事会的科学家们研发设计了一种"太阳能树"光伏发电装置系统,它能有效利用土地面积,显著提高光伏面板太阳能利用率.这种太阳能树由钢铁做成一个树状结构,将光伏面板放置在树的不同高度和朝向,以充分利用太阳光线.在树的顶端,还安装清洗太阳能面板的喷水装置,具有自洁功能,以保证太阳能发电效率. 与屋顶太阳能或太阳能发电厂相比,太阳能树有两个明显的优势,即占用较少的土地面积和更高的发电效率.太阳能树占地仅约 1.

uva10382

题意:有一块草坪,长为l,宽为w,在其中心线的不同位置处装有n个点状的喷水装置,每个装置i可以将以它为中心,半径为ri的圆形区域润湿,清选择尽量少的喷水装置,把整个草坪全部润湿. 分析:其实是一个最小区间覆盖的问题,用最少的区间覆盖给定的区间. 代码:   #include <stdio.h> #include <math.h> #include <algorithm> using namespace std; const int MAXN = 11111; doubl

uva10382 Watering Grass

题意:有一块草坪,长为l,宽为w,再起中心线的不同位置处装有n个点状的喷水装置.每个喷水装置i可以将以它为中心,半径为ri的圆形区域润湿,请选择尽量少的喷水装置,把整个草坪全部润湿. 分析:对于直径小于宽度的喷水装置其实可以忽略,剩下的问题转换成了最小区间覆盖问题,即:用最少数量的区间去覆盖给定的区间 1 #include <stdio.h> 2 #include <iostream> 3 #include <algorithm> 4 #include <math

未来30年前沿科技风口

上世纪70.80年代作为计算机硬软件的萌芽时代,涌现了一批以乔布斯.比尔盖茨等典型的科技企业家.像苹果.微软.Oracle等科技巨头公司.作为萌芽阶段,借助对其独特的热爱.偏执,硬件从有到无.从大到小,性能从低效到亿次批量计算.这些先驱公司奠定了后来改变世界.改变每个人生活的基础. 近三十年来时计算机互联网的普及阶端.从贵族家庭标志的到大众化.从简单功能到现在的即将链接一切.这三十年的发展涌现了互联网公司大多依据现有的硬件提供服务的厂商.在中国的早期以网易.新浪.搜狐等门户网站发家.以及后起之秀