時間限制:
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
樣例輸出
12
**《演算法藝術與資訊學競賽》
上傳者
張云聰
#includeusing namespace std;
struct nodenode[1003];
bool cmp2(node a,node b)
}sort(node,node+n,cmp2);
double sum=0.0;//當前覆蓋的長度
int flag=1;
int count=0;
while(summ)//找出既能保證完全覆蓋又能保證這點能夠達到的右交點最大,即需要的噴水裝置最少
m=node[i].right-sum;//找出最大值
}if(m==0)//說明node[i].left>sum,表示其中乙個點的右交點跟另外乙個點的左交點沒有連線上,即不能完全覆蓋
else
} if(flag==1)
printf("%d\n",count);
else printf("0\n");
}}
噴水裝置 二
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...
噴水裝置(二)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...
噴水裝置(二)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。...