问题:给出一个长为l,宽为w的绿化带,n个喷水装置及其对就位置x和影响半径r。问最少需要多少个喷水装置能全覆盖此绿化带
思路:首先要计算喷水装置可以覆盖的区间,如果喷水装置的影响半径小于等于w/2,是覆盖不全的。其影响区间为[x-sqrt(r^2-(w/2)^2), x+sqrt(r^2-(w/2)^2)]。如果右区间小于等于0或者左区间大于等于l,其是不会覆盖的。在确定一个右坐标后right(i),计算下一个右坐标时right(i+1),要求下个区间的左坐标小于等于right(i),右坐标大于right(i)并且选取右坐标最大的作为下一个的起点。而在确定第一个右坐标时,选取right(0)=0。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/UVa/10382%20Watering%20Grass