#P3517. [POI2011] WYK-Plot

[POI2011] WYK-Plot

题目描述

We call any sequence of points in the plane a plot.

We intend to replace a given plot (P1,,Pn)(P_1,\cdots,P_n) with another that will have at most mm points (mnm\le n) in such a way that it "resembles" the original plot best.

The new plot is created as follows. The sequence of points P1,,PnP_1,\cdots,P_n can be partitioned into ss (sms\le m) contiguous subsequences:

$(P_{k_0+1},\cdots,P_{k_1}),(P_{k_1+1},\cdots,P_{k_2}),\cdots,(P_{k_{s-1}+1},\cdots,P_{k_s})$ where 0=k0<k1<k2<<ks=n0=k_0<k_1<k_2<\cdots<k_s=n,and afterwards each subsequence (Pki1+1,,Pki)(P_{k_{i-1}+1},\cdots,P_{k_i}), for i=1,,si=1,\cdots,s,is replaced by a new point QiQ_i.

In that case we say that each of the points Pki1+1,,PkiP_{k_{i-1}+1},\cdots,P_{k_i} has been contracted to the point QiQ_i.

As a result a new plot, represented by the points Q1,,QsQ_1,\cdots,Q_s, is created.

The measure of such plot's resemblance to the original is the maximum distance of all the points P1,,PnP_1,\cdots,P_n to the point it has been contracted to:

$max_{i=1,\cdots,s}(max_{j=k_{i-1}+1,\cdots,k_i}(d(P_j,Q_i)))$ where d(Pj,Qi)d(P_j,Q_i) denotes the distance between PjP_j and QiQ_i, given by the well-known formula:

$d((x_1,y_1),(x_2,y_2))=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$

An exemplary plot P1,,P7P_1,\cdots,P_7 and the new plot (Q1,Q2)(Q_1,Q_2), where (P1,,P4)(P_1,\cdots,P_4) are contracted to Q1Q_1, whereas (P5,P6,P7)(P_5,P_6,P_7) to Q2Q_2.

For a given plot consisting of nn points, you are to find the plot that resembles it most while having at most mm points, where the partitioning into contiguous subsequences is arbitrary.

Due to limited precision of floating point operations, a result is deemed correct if its resemblance to the given plot is larger than the optimum resemblance by at most 0.0000010.000001.

给定n个点,要求把n个点分成不多于m段,使得求出每段的最小覆盖圆的半径后,最大的半径最小。

输入格式

In the first line of the standard input there are two integers nn and mm, 1mn100 0001\le m\le n\le 100\ 000, separated by a single space.

Each of the following nn lines holds two integers, separated by a single space.

The (i+1)(i+1)-th line gives xix_i,yiy_i,1 000 000xi,yi1 000 000-1\ 000\ 000\le x_i,y_i\le 1\ 000\ 000 denoting the coordinates (xi,yi)(x_i,y_i) of the point PiP_i.

输出格式

In the first line of the standard output one real number dd should be printed out, the resemblance measure of the plot found to the original one.

In the second line of the standard output there should be another integer ss, 1sm1\le s\le m.

Next, the following ss lines should specify the coordinates of the points Q1,,QsQ_1,\cdots,Q_s,one point per line.

Thus the (i+2)(i+2)-th line should give two real numbers uiu_i and viv_i, separated by a single space, that denote the coordinates (ui,vi)(u_i,v_i) of the point QiQ_i.All the real numbers should be printed with at most 15 digits after the decimal point.

7 2
2 0
0 4
4 4
4 2
8 2
11 3
14 2
3.00000000
2
2.00000000 1.76393202
11.00000000 1.99998199

提示

给定n个点,要求把n个点分成不多于m段,使得求出每段的最小覆盖圆的半径后,最大的半径最小。