喷水装置(一)

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

喷水装置(二)

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
有一块草坪,横向长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;
    }
}

注意: 其实是变相的最少的区间覆盖问题。注意排序的规则

喷泉装置(贪心问题)相关推荐

  1. 【南阳ACM】 喷泉装置(一)

    对于南阳理工的喷泉装置一题,我用了sort函数的升序排序: 题目: 喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要 ...

  2. 【贪心】雷达装置(ybtoj 贪心-1-2)

    雷达装置 ybtoj 贪心-1-2 题目大意 在平面直角坐标系中有n个点,现在让你在x轴上布置雷达,雷达可以的侦查半径为d,问你最少布置多少个雷达 输入样例 3 2 1 2 -3 1 2 1 输出样例 ...

  3. NYOJ-喷水装置(一)(贪心)

    题目描述: 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i ...

  4. [SinGuLaRiTy] 贪心题目复习

    [SinGuLaRiTy-1024] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [POJ 2709] 颜料 (Painter) 题目描述 ...

  5. 贪心算法之——喷水装置一(nyoj6)

    描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1& ...

  6. 蓝桥备赛第三周 倍增+贪心+素数+约数

    文章目录 0X06倍增 天才ACM(有空再做) 0X07贪心 防晒 将乳液按SPF从大到小,牛按minSPF从大到小排序 牛客有个题解都从小到大也过了 原理 畜栏预定 ~~按结束时间从小到大排~~ 按 ...

  7. 三类基于贪心思想的区间覆盖问题

    一.区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖. 样例:一个长度为8的区间,可选的线段有[2,6], ...

  8. 贪心算法—建立雷达(POJ 1328)

    贪心算法--区间选点问题 这也是贪心算法的经典问题,一般情况为:有n个闭区间[ai,bj],取尽量少的点,使得每个区间内都至少有一个点. 分析 如果区间i内已经有一个点被取到,则称此区间已经被满足. ...

  9. 连通子图什么意思_一道物理竞赛题揭开“希罗喷泉”的神秘面纱,到底什么物理原理?...

    多数初二的中学生朋友们现在都已经在学习压强知识,这一块知识属于中考物理必考重点内容,所占分值很高,所考查题型非常广泛,而且多是力学知识的综合性应用,因此属于中考的一个难点,中学生朋友们在遇到有关此类复 ...

最新文章

  1. 让AngularJS的$http 服务像jQuery.ajax()一样工作
  2. 网络空间站是计算机,超级病毒或入侵国际空间站生命维持计算机
  3. Icomparer和Icomparable集合排序
  4. PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)
  5. html5有本地存储吗,HTML5的本地存储
  6. Flutter进阶第6篇: 获取设备信息 以及 使用高德Api获取地理位置
  7. JasperReport| JasperReport中使用自定义字体(font)
  8. slickedit使用簡介
  9. macbook加入路由_笔记本怎么安装无线路由器 MacBook安装无线路由器方法【详细步骤】...
  10. 聚合支付系统业务分析
  11. 星号99乘法表c语言,用Python打印九九乘法表与金字塔(*)星号
  12. hdu_2670Girl Love Value(dp)
  13. 欧洲游记之—— 路过荷兰
  14. Ubuntu 下eclipse安装
  15. Android版本新特性(6-12)(13预览)
  16. Feishu(飞书) 聊天机器人应用(3/3)- DevOps 机器人助手,管理 GitLab Issues,BOT 开源示例程序
  17. 局域网下 共享文件夹
  18. 用requests和pandas爬取中国福彩网官网 双色球 历年全部彩票数据
  19. 从快递到电商,顺丰在谋划什么?
  20. html 悬浮菜单按钮,HTML右侧悬浮菜单

热门文章

  1. 2022山东省安全员C证考试模拟100题模拟考试平台操作
  2. 淘宝开店必须要有电脑才行吗?必备工具有哪些?
  3. c语言输出名人名言大全摘抄,程序员名言警句摘抄大全
  4. 本地电脑做服务器搭建私人音乐网站ThinkMusic + cpolar内网穿透
  5. Java中获取GBK编码汉字的拼音首字母(包括生僻字)
  6. python机器人语音_python语音机器人
  7. 分布式技术点和技术趋势
  8. 数字人掀起全行业定制热潮,虚拟数字人赋能品牌孕育商业新机会
  9. wow服务器维护公告四号,魔兽世界5月7日更新内容 wow5.7大服务器实装维护公告
  10. WOW - 我的可爱巨魔萨满