题目链接
UVa 10382
方法:贪心
题目分析
题目大意
给定n个喷灌机,以及草坪的长l、宽w,以及每个喷灌机的所在位置o和覆盖半径r,要求草坪所有地方都喷到水,求最少需要几个喷灌机。
解析
先用初中学的垂径定理算该喷灌机可覆盖的范围,记录下l和r,储存在一个segment里,将这些segment线段按左端点排序。每次找未覆盖区域(用left和right表示两端)中,左端点大于等于left的线段,并且找到这些线段中右端点的最大值,更新right。这么着循环一次,则表示多用一个喷灌机,ans+=1。输出-1的话有两种情况,第一种,一开始就找不到能覆盖左端点的喷灌机,第二种,没有办法移步到下一个喷灌机。(其实本质上来讲是一种)
代码
参考题解:http://blog.csdn.net/shuangde800/article/details/7828675
1 |
|