時間限制:
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。
樣例輸入
22 8 6
1 14 5
2 10 6
4 56 5
樣例輸出
1
//跟nyoj 6有點像,不過它固定了每個裝置的座標
//為了防止精度問題,統一設成double型變數了
//先把裝置按半徑從大到小排序,然後每次選能讓頂點更新到最大的,看看它能不能覆蓋頂點,若能,則選
//直到頂點超過w
#include #include #include #include #define maxn 10000+50
#define eps 1e-7
using namespace std;
struct node
node[maxn];
int cmp(node a, node b)
int vis[maxn]; //記錄某個裝置被用過了
int main()}}
if(th==-1)
vis[th] = 1;
ans++;
} if(w-st>eps)
printf("0\n");
else
printf("%d\n", ans);
} return 0;
}
NYOJ 12 噴水裝置(二) 貪心)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...
NYOJ 12 噴水裝置(二)貪心
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...
NYOJ12 噴水裝置(二) 貪心
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...