有一塊草坪,橫向長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思路:就是把中心線也就是橫座標當軸,以覆蓋面積為區間,簡單的區間覆蓋;2
收穫:學到了類似結構體的vector
**如下:
#include #include #include #include using namespace std;
double f(double r,double h)
bool cmp(paira,pairb)
}sort(vec.begin(),vec.end(),cmp);
double right=0.0;
int cnt=0;
while(rightmaxl)
maxl=vec[i].second-right;
}if(maxl!=0)
else
break;
}if(right>=w)
cout
cout<<0<}
return 0;
}
12 噴水裝置(二)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...
12 噴水裝置(二)
描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。輸入 第一行輸入乙個正整數n表示共有n次測試資料。每一組測試資料的...
12 噴水裝置
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。輸...