貪心演算法(二) 噴水裝置(二)

2021-08-19 01:40:36 字數 1258 閱讀 8768

時間限制:

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組測試資料 每一組測試資料的第一行有乙...