時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:4描述
有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n(n<=10000)個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。 輸入
第一行輸入乙個正整數n表示共有n次測試資料。
每一組測試資料的第一行有三個整數n,w,h,n表示共有n個噴水裝置,w表示草坪的橫向長度,h表示草坪的縱向長度。
隨後的n行,都有兩個整數xi和ri,xi表示第i個噴水裝置的的橫座標(最左邊為0),ri表示該噴水裝置能覆蓋的圓的半徑。
輸出每組測試資料輸出乙個正整數,表示共需要多少個噴水裝置,每個輸出單獨佔一行。
如果不存在一種能夠把整個草坪濕潤的方案,請輸出0。
樣例輸入
2樣例輸出2 8 6
1 14 5
2 10 6
4 56 5
1思路:區間覆蓋問題2
數軸上有n個閉區間[ai, bi],選擇盡量少的區間覆蓋一條指定線段[s, t]。
用貪心法解決這個問題的思路如下:
(1)找到所有的、起點小於s的區間
(2)把這些區間按照起點,從小到大排序
(3)排序後,選擇起點在現在起點之前或者是現在起點,並且它的終點是前一條件中最遠的終點。
將終點設為起點,重新開始(3),如果終點大於等於區間的終點,則完成。
(4)現在問題變成了,「選擇盡量少的區間覆蓋一條指定線段[bi, t]」
思路:把噴水裝置的覆蓋範圍轉化為一段區間,然後問題變成區間完全覆蓋問題
噴水裝置 貪心演算法
長l公尺,寬w公尺的草坪裡裝有n個澆灌噴頭。每個噴頭都裝在草坪中心線上 離兩邊各w 2公尺 我們知道每個噴頭的位置 離草坪中心線左端的距離 以及它能覆蓋到的澆灌範圍。請問 如果要同時澆灌整塊草坪,最少需要開啟多少個噴頭?輸入包含若干組測試資料。第一行乙個整數t表示資料組數。每組資料的第一行是整數n ...
噴水裝置 貪心演算法
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置,...
噴水裝置(一)貪心演算法
聽說這是 貪心演算法 的乙個簡單應用,雖說是簡單,但是對我來說,確實不簡單。說下面說有用的 題目描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0輸入描述 第一行m表示有m組測試資料 每一組測試資料的第一行有乙...