题意:有一个长方形草坪,长为l,宽为w,在它的水平中心线上可以安装n个喷水器来为草坪浇水,每个喷水器能够灌溉的范围是以该喷水器为中心的半径为r的圆。我们要灌溉整个草坪,问你最少需要的喷水器数。

题解:很明显这是一个最小区间覆盖问题~~(老长时间不写了,写个blog记录下)~~

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
struct node{double left;double right;
}a[10009];
double solve(double r,double w)
{double tmp=r*r-w*w/4;return sqrt(tmp);
}
bool cmp(node x,node y)
{return x.right>y.right;
}
int main()
{int n,cnt,ans;double x,r,l,w,en;while(~scanf("%d%lf%lf",&n,&l,&w)){cnt=0;ans=0;en=0;for(int i=1;i<=n;i++){cin>>x>>r;if(2*r<w) continue;double tmp;tmp=solve(r,w);a[++cnt].left=x-tmp;a[cnt].right=x+tmp;}sort(a+1,a+1+cnt,cmp);while(en<l){int i;for(i=1;i<=cnt;i++){if(a[i].left<=en&&a[i].right>en){en=a[i].right;ans++;break;}}if(i==cnt+1) break;}if(en<l)cout<<"-1"<<endl;elsecout<<ans<<endl;}return 0;
}

UVA-10382 Watering Grass相关推荐

  1. UVa 10382 - Watering Grass

    链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&pa ...

  2. 10382 - Watering Grass(贪心 区间覆盖问题)洒水面覆盖

    double qiuzhi(int id) {double t1=cc[id].rid*cc[id].rid;double t2=w*w/4;double t3=t1-t2;double t4=sqr ...

  3. UVA10382 - Watering Grass 题解

    原题链接 Online Judge: 10382 - Watering Grass Virtual Judge: Watering Grass - UVA 10382 洛谷:UVA10382 Wate ...

  4. UVa10382 - Watering Grass(贪心算法)

    问题:给出一个长为l,宽为w的绿化带,n个喷水装置及其对就位置x和影响半径r.问最少需要多少个喷水装置能全覆盖此绿化带 思路:首先要计算喷水装置可以覆盖的区间,如果喷水装置的影响半径小于等于w/2,是 ...

  5. *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)

    题干: 题目大意: 有一块草坪,长为l,宽为w,在它的水平中心线上有n个位置可以安装喷水装置,各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆.求出最少需要的喷水装置个数,如果无论如何都不能覆 ...

  6. Watering Grass UVA - 10382 贪心

    问题 https://vjudge.net/problem/UVA-10382 分析 将一个点的覆盖范围看作是一个长方形,舍弃弓形区域,变成区间覆盖问题,用贪心法 注意:bb-ww/4有可能小于0,要 ...

  7. UVa-10382 Watering Grass **

    /* * Uva-10382-Watering Grass.cpp * 特别注意精度..(感觉这道题的判题有问题,开始怎么交都WA,,过两天什么都没改,再交就AC了 , 汗.. * * 详细代码注释: ...

  8. Watering Grass——UVA10382

    题目 n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each s ...

  9. Watering Grass UUV 1038 贪心

    问题: n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each ...

最新文章

  1. excel中如何et vb根据数据自动生成表格_如何实现excel与PPT互联互通(动态生成PPT)...
  2. OAauth2.0包括以下角
  3. babel原理_带你了解 snowpack 原理,你还学得动么(下)
  4. 一文搞清楚 Spark 数据本地化级别
  5. 关于AfxMessageBox没有重载函数
  6. Solr schema编写指导
  7. es服务器的cpu压力过大的调试
  8. 查看IP访问服务器日志的次数
  9. MediaPipe基础(5)Pose(姿势)
  10. MongoDB—Mac M1的安装
  11. Java随笔记 - 断包和粘包 解决方法
  12. 徐荣谦《养好脾和肺 宝宝不积食不咳嗽长大个》【00】 序
  13. oracle 天转换成月函数_oracle日期函数,转换函数
  14. PTCHECK查重好渣啊,还没有paperyy好用
  15. strcpy s 的用法
  16. 计算机图书封面也疯狂
  17. 小米手机开启“启用MIUI优化”,导致Android Studio无法成功直接安装
  18. G4L-硬盘对拷工具
  19. 大一上学期期末计算机考试试题,大一第一学期期末考试计算机试题1
  20. 数字图像处理:关于BMP格式图像的理解和读写(c++)

热门文章

  1. 如何利用Google机器人进行SQL攻击
  2. 零基础教你Unity制作像素鸟游戏 【文末源码】
  3. FXLMS主动降噪的simulink建模与仿真
  4. 日内因子:开盘缺口探索
  5. python预测股票价格_使用机器学习预测股票价格的愚蠢简便方法
  6. 秒表计时器——Java基础练手项目(Java课程设计)
  7. tensorflow 参数clipping
  8. USB | USB设备状态
  9. 采药问题 c语言程序,采药问题为什么不能ac(内附代码)
  10. element plus 引入icon