喷泉装置(贪心问题)
喷水装置(一)
- 描述
-
现有一块草坪,长为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
喷水装置(二)
- 描述
-
有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。
- 输入
-
第一行输入一个正整数N表示共有n次测试数据。
每一组测试数据的第一行有三个整数n,w,h,n表示共有n个喷水装置,w表示草坪的横向长度,h表示草坪的纵向长度。
随后的n行,都有两个整数xi和ri,xi表示第i个喷水装置的的横坐标(最左边为0),ri表示该喷水装置能覆盖的圆的半径。 - 输出
-
每组测试数据输出一个正整数,表示共需要多少个喷水装置,每个输出单独占一行。
如果不存在一种能够把整个草坪湿润的方案,请输出0。 - 样例输入
-
2 2 8 6 1 1 4 5 2 10 6 4 5 6 5
- 样例输出
-
1 2
程序如下:
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
struct SS
{
int l;//区间左边
int r;//区间右边
}rad[10002];
bool cmp(SS s1,SS s2)//排序条件???
{
if(s1.l<s2.l) return true;
if(s1.l==s2.l&&s1.r<s2.r)
return true;
return false;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int n2,w,h;
cin>>n2>>w>>h;
for(int j=0;j<n2;j++)
{
int left,radius;
double s=(double)(radius*radius-(h/2)*(h/2));
if(s<0)//半径不足以覆盖池子的高
continue;
else
{
rad[i].l=left-sqrt(s);
rad[i].r=left+sqrt(s);
}
}
sort(rad,rad+n2,cmp);
double sum=0;
double max;
int flg=1;
int number=0;
//贪心算法
while(sum<w)
{
max=0;
for(int j=0;j<n2&&rad[j].l<=sum;j++)
{
if(rad[j].r-sum>max) max=rad[j].r-sum;
}
if(max==0)
{
flg=0;
break;
}
else
{
sum+=max;
number++;
}
}
if(flg)
cout<<number<<endl;
else
cout<<"0"<<endl;
return 0;
}
}
注意: 其实是变相的最少的区间覆盖问题。注意排序的规则
喷泉装置(贪心问题)相关推荐
- 【南阳ACM】 喷泉装置(一)
对于南阳理工的喷泉装置一题,我用了sort函数的升序排序: 题目: 喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要 ...
- 【贪心】雷达装置(ybtoj 贪心-1-2)
雷达装置 ybtoj 贪心-1-2 题目大意 在平面直角坐标系中有n个点,现在让你在x轴上布置雷达,雷达可以的侦查半径为d,问你最少布置多少个雷达 输入样例 3 2 1 2 -3 1 2 1 输出样例 ...
- NYOJ-喷水装置(一)(贪心)
题目描述: 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i ...
- [SinGuLaRiTy] 贪心题目复习
[SinGuLaRiTy-1024] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [POJ 2709] 颜料 (Painter) 题目描述 ...
- 贪心算法之——喷水装置一(nyoj6)
描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1& ...
- 蓝桥备赛第三周 倍增+贪心+素数+约数
文章目录 0X06倍增 天才ACM(有空再做) 0X07贪心 防晒 将乳液按SPF从大到小,牛按minSPF从大到小排序 牛客有个题解都从小到大也过了 原理 畜栏预定 ~~按结束时间从小到大排~~ 按 ...
- 三类基于贪心思想的区间覆盖问题
一.区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖. 样例:一个长度为8的区间,可选的线段有[2,6], ...
- 贪心算法—建立雷达(POJ 1328)
贪心算法--区间选点问题 这也是贪心算法的经典问题,一般情况为:有n个闭区间[ai,bj],取尽量少的点,使得每个区间内都至少有一个点. 分析 如果区间i内已经有一个点被取到,则称此区间已经被满足. ...
- 连通子图什么意思_一道物理竞赛题揭开“希罗喷泉”的神秘面纱,到底什么物理原理?...
多数初二的中学生朋友们现在都已经在学习压强知识,这一块知识属于中考物理必考重点内容,所占分值很高,所考查题型非常广泛,而且多是力学知识的综合性应用,因此属于中考的一个难点,中学生朋友们在遇到有关此类复 ...
最新文章
- 让AngularJS的$http 服务像jQuery.ajax()一样工作
- 网络空间站是计算机,超级病毒或入侵国际空间站生命维持计算机
- Icomparer和Icomparable集合排序
- PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)
- html5有本地存储吗,HTML5的本地存储
- Flutter进阶第6篇: 获取设备信息 以及 使用高德Api获取地理位置
- JasperReport| JasperReport中使用自定义字体(font)
- slickedit使用簡介
- macbook加入路由_笔记本怎么安装无线路由器 MacBook安装无线路由器方法【详细步骤】...
- 聚合支付系统业务分析
- 星号99乘法表c语言,用Python打印九九乘法表与金字塔(*)星号
- hdu_2670Girl Love Value(dp)
- 欧洲游记之—— 路过荷兰
- Ubuntu 下eclipse安装
- Android版本新特性(6-12)(13预览)
- Feishu(飞书) 聊天机器人应用(3/3)- DevOps 机器人助手,管理 GitLab Issues,BOT 开源示例程序
- 局域网下 共享文件夹
- 用requests和pandas爬取中国福彩网官网 双色球 历年全部彩票数据
- 从快递到电商,顺丰在谋划什么?
- html 悬浮菜单按钮,HTML右侧悬浮菜单
热门文章
- 2022山东省安全员C证考试模拟100题模拟考试平台操作
- 淘宝开店必须要有电脑才行吗?必备工具有哪些?
- c语言输出名人名言大全摘抄,程序员名言警句摘抄大全
- 本地电脑做服务器搭建私人音乐网站ThinkMusic + cpolar内网穿透
- Java中获取GBK编码汉字的拼音首字母(包括生僻字)
- python机器人语音_python语音机器人
- 分布式技术点和技术趋势
- 数字人掀起全行业定制热潮,虚拟数字人赋能品牌孕育商业新机会
- wow服务器维护公告四号,魔兽世界5月7日更新内容 wow5.7大服务器实装维护公告
- WOW - 我的可爱巨魔萨满