Watering Grass UVA - 10382 贪心
问题
https://vjudge.net/problem/UVA-10382
分析
将一个点的覆盖范围看作是一个长方形,舍弃弓形区域,变成区间覆盖问题,用贪心法
注意:bb-ww/4有可能小于0,要筛出
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <map>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn=10000+5;
const double eps=1e-6;
struct spr{double L,R;bool operator < (const spr &rhs) const {return L<rhs.L;}
}sprs[maxn];
int n,kase=0,cnt;
double l,w,a,b;
int main(void){while(scanf("%d%lf%lf",&n,&l,&w)==3){cnt=0;for(int i=0;i<n;++i){scanf("%lf%lf",&a,&b);if(b<=w/2+eps) continue;double t=sqrt(b*b-w*w/4);sprs[cnt].L=a-t;sprs[cnt].R=a+t;++cnt;}sort(sprs,sprs+cnt);int ans=0,i=0;double right=0,maxr=0;while(true){for(;i<cnt;++i){if(sprs[i].L<right+eps){maxr=max(maxr,sprs[i].R);}else break;}if(maxr-right>eps) {++ans;right=maxr;}else break;if(right>l-eps) break;}if(right>l-eps) printf("%d\n",ans);else printf("-1\n");}return 0;
}
Watering Grass UVA - 10382 贪心相关推荐
- Watering Grass UUV 1038 贪心
问题: n sprinklers are installed in a horizontal strip of grass l meters long and w meters wide. Each ...
- UVA10382 - Watering Grass 题解
原题链接 Online Judge: 10382 - Watering Grass Virtual Judge: Watering Grass - UVA 10382 洛谷:UVA10382 Wate ...
- UVa 10382 - Watering Grass
链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&pa ...
- UVa10382 - Watering Grass(贪心算法)
问题:给出一个长为l,宽为w的绿化带,n个喷水装置及其对就位置x和影响半径r.问最少需要多少个喷水装置能全覆盖此绿化带 思路:首先要计算喷水装置可以覆盖的区间,如果喷水装置的影响半径小于等于w/2,是 ...
- *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)
题干: 题目大意: 有一块草坪,长为l,宽为w,在它的水平中心线上有n个位置可以安装喷水装置,各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆.求出最少需要的喷水装置个数,如果无论如何都不能覆 ...
- 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 ...
- 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 ...
- uva10382 - Watering Grass
题目大意:输入n,l,w.分别代表有n个喷水装置,草地长为L,宽为W:接下来n行,每行两个数,a,r,分别代表喷水装置在草地中的横坐标,和喷水半径.喷水装置的纵坐标都是草地的正中央.求用最少的喷水装置 ...
最新文章
- 浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式 pth中的路径加载使用
- Android NDK编程小试---实现java和c语言的互掉
- hdu 5493 Queue(逆序对,线段树)
- ASP.NET服务器控件数据绑定总结
- cpuz北桥频率和内存频率_DDR4的内存频率是如何计算的?
- python图形用户界面pyside_PySide——Python图形化界面入门教程(一)
- 夫妻两人同一个银行各自存50万,银行破产了该赔多少?
- Java——多线程使用详解
- leetCode 6. ZigZag Conversion 字符串 (上传费劲)
- 18.外部相机校准——介绍,几何相机校正,自由度 测验,刚体变换,符号_1
- 理解这几个安全漏洞,你也能做安全测试【干货建议收藏】
- gt1151触摸驱动调试
- 微信小程序保存图片到相册
- 苹果按键强制恢复出厂_【数码】苹果手机忘了解锁密码不要慌,你可以这样做!...
- 《灵飞经》②东岛门人 第一章 倩女灵苏
- hadoop3新特性
- 生成订单:三个表(Products,Orders,OrderItem)
- Jenkins的安装及使用
- 新建springboot项目一直转圈圈
- 天然气阶梯是按年还是按月_天然气阶梯价是按年算还是月算