UVA-10382 Watering Grass
题意:有一个长方形草坪,长为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相关推荐
- UVa 10382 - Watering Grass
链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&pa ...
- 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 ...
- UVA10382 - Watering Grass 题解
原题链接 Online Judge: 10382 - Watering Grass Virtual Judge: Watering Grass - UVA 10382 洛谷:UVA10382 Wate ...
- UVa10382 - Watering Grass(贪心算法)
问题:给出一个长为l,宽为w的绿化带,n个喷水装置及其对就位置x和影响半径r.问最少需要多少个喷水装置能全覆盖此绿化带 思路:首先要计算喷水装置可以覆盖的区间,如果喷水装置的影响半径小于等于w/2,是 ...
- *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)
题干: 题目大意: 有一块草坪,长为l,宽为w,在它的水平中心线上有n个位置可以安装喷水装置,各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆.求出最少需要的喷水装置个数,如果无论如何都不能覆 ...
- Watering Grass UVA - 10382 贪心
问题 https://vjudge.net/problem/UVA-10382 分析 将一个点的覆盖范围看作是一个长方形,舍弃弓形区域,变成区间覆盖问题,用贪心法 注意:bb-ww/4有可能小于0,要 ...
- UVa-10382 Watering Grass **
/* * Uva-10382-Watering Grass.cpp * 特别注意精度..(感觉这道题的判题有问题,开始怎么交都WA,,过两天什么都没改,再交就AC了 , 汗.. * * 详细代码注释: ...
- Watering Grass——UVA10382
题目 n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each s ...
- Watering Grass UUV 1038 贪心
问题: n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each ...
最新文章
- excel中如何et vb根据数据自动生成表格_如何实现excel与PPT互联互通(动态生成PPT)...
- OAauth2.0包括以下角
- babel原理_带你了解 snowpack 原理,你还学得动么(下)
- 一文搞清楚 Spark 数据本地化级别
- 关于AfxMessageBox没有重载函数
- Solr schema编写指导
- es服务器的cpu压力过大的调试
- 查看IP访问服务器日志的次数
- MediaPipe基础(5)Pose(姿势)
- MongoDB—Mac M1的安装
- Java随笔记 - 断包和粘包 解决方法
- 徐荣谦《养好脾和肺 宝宝不积食不咳嗽长大个》【00】 序
- oracle 天转换成月函数_oracle日期函数,转换函数
- PTCHECK查重好渣啊,还没有paperyy好用
- strcpy s 的用法
- 计算机图书封面也疯狂
- 小米手机开启“启用MIUI优化”,导致Android Studio无法成功直接安装
- G4L-硬盘对拷工具
- 大一上学期期末计算机考试试题,大一第一学期期末考试计算机试题1
- 数字图像处理:关于BMP格式图像的理解和读写(c++)