贪心
有解决方案的前提是:所有小岛都被雷达覆盖即 |yi| <=d
假设岛屿为(x,y),以(x,y)为圆心,半径为d,如果其能被海岸线的雷达(t,0)覆盖,则满足(x - t)^ 2 +y ^ 2 = d^2,t属于[x -sqrt(d * d - y * y),x+ sqrt(d * d - y * y)]。 每一个岛屿对应x轴上的一条线段,雷达就是线段上的点,从而将二维问题转化为一维问题。
对所有线段按照右区间升序排序,如果所有线段都没有交集那么雷达最小数目就是岛屿个数。当选定一个雷达之后,下一段区间的起始点在上一个雷达的右边,那么这个岛屿就不在 上个雷达的覆盖范围,则需要加入新的雷达
题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla