HDU 5046 Airport(DLX可重復覆蓋)
Problem Description
The country of jiuye composed by N cites. Each city can be viewed as a point in a two- dimensional plane with integer coordinates (x,y). The distance between city i and city j is defined by d
ij = |x
i - x
j| + |y
i -
y
j|. jiuye want to setup airport in K cities among N cities. So he need your help to choose these K cities, to minimize the maximum distance to the nearest airport of each city. That is , if we define d
i(1 ≤ i ≤ N ) as the distance from
city i to the nearest city with airport. Your aim is to minimize the value max{d
i|1 ≤ i ≤ N }. You just output the minimum.
Input
The first line of the input is T (1 ≤ T ≤ 100), which stands for the number of test cases you need to solve.
The first line of each case contains two integers N ,K (1 ≤ N ≤ 60,1 ≤ K ≤ N ),as mentioned above.
The next N lines, each lines contains two integer x
i and y
i (-10
9 ≤ x
i, y
i ≤ 10
9), denote the coordinates of city i.
Output
For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then a single integer means the minimum.
Sample Input
2
3 2
0 0
4 0
5 1
4 2
0 3
1 0
3 0
8 9
Sample Output
Case #1: 2
Case #2: 4
題意:要在n個城市裡建造不超過k個機場,問機場城市之間最大距離最小為多少。
DLX做法:跟
HDU 2295 Radar(DLX可重復覆蓋)差不多,我們的做法就是
保存n個城市之間的距離,sort一下,二分結果,對滿足條件的DLX求覆蓋程度,
求出最大距離最小值。此題二分0~INF也可解決。只不過我的方法快點。
#include
#include
#include
#include
#include
#include
#include
#include
#include