poj 1328 貪心(建立雷達覆蓋小島)

2021-06-23 02:18:31 字數 482 閱讀 4258

題意:x軸上方有若干小島,用座標(x,y)給出。現要在x軸上建立若干雷達,雷達的半徑(r)全部相同,且由輸入給定。問為了覆蓋全部小島,最少需要建立多少雷達?

思路:對每個小島座標,求出需要覆蓋它的雷達的x座標範圍,可以得到一系列區間。問題變成每個區間裡至少選一點,問最少的選點數量。

將所有區間按照右側大小排序,用乙個變數now表示當前可到區間的最右端,如果下乙個區間的左端點大於now,則點數加1;否則,點數不加。

#include #include #include #define min(a,b) a(*b).y)

return 1;

if((*a).y < (*b).y)

return -1;

return 0;

}int main()

} printf("case %d: %d\n",t++,res);

} return 0;

}

poj 1328 雷達覆蓋 貪心

題目 題意 在x軸上某些位置裝雷達,問怎麼才能使海島p被訊號覆蓋,有n個海島,雷達覆蓋範圍是d。分析 考慮乙個海島p,對於覆蓋它的雷達放的最優的位置是它在圓圈的邊緣上,因為這樣這個雷達就可以覆蓋更多其他的海島。那麼先按x排序,對於當前的乙個圈,看看是否下乙個海島是否可以在圈內,如果可以就在看下乙個,...

POJ1328貪心放雷達

題意 有乙個二維座標,y 0是海,y 0是陸地,然後只能在y 0的岸邊上放雷達,有n個城市需要被監控,問最少放多少個雷達。思路 貪心去做就行了,其實題目不難但是這個題目過的並不怎麼順利,哎!一開始我的想法是按照x排序,然後從左往右乙個乙個放置雷達,第乙個放在第乙個點相切的右側,結果果斷wa了,然後就...

安裝雷達POJ 1328(貪心)

翻譯過來就是 解題思路 把這個二維的問題轉化為轉化為一維的問題。如上圖所示,只需要雷達安裝在這個區間中的話,雷達就能夠覆蓋到上面的島嶼。現在這個問題又變成區間排程問題了。但是還有乙個問題就是在這個區間中說明位置上放置雷達呢?這個區間可是有無數個點,列舉肯定不可能。解決方向如下 說實話作為乙個小白而言...