luogu#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 with another that will have at most points () in such a way that it "resembles" the original plot best.
The new plot is created as follows. The sequence of points can be partitioned into () 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 ,and afterwards each subsequence , for ,is replaced by a new point .
In that case we say that each of the points has been contracted to the point .
As a result a new plot, represented by the points , is created.
The measure of such plot's resemblance to the original is the maximum distance of all the points 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 denotes the distance between and , 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 and the new plot , where are contracted to , whereas to .
For a given plot consisting of points, you are to find the plot that resembles it most while having at most 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 .
输入格式
In the first line of the standard input there are two integers and , , separated by a single space.
Each of the following lines holds two integers, separated by a single space.
The -th line gives ,, denoting the coordinates of the point .
输出格式
In the first line of the standard output one real number 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 , .
Next, the following lines should specify the coordinates of the points ,one point per line.
Thus the -th line should give two real numbers and , separated by a single space, that denote the coordinates of the point .All the real numbers should be printed with at most 15 digits after the decimal point.
题目大意
题目描述
译自 POI 2011 Round 1. E「Plot」
给定 个点 ,将其分成不多于 个连续的段:
$$\left( P_{k_0 + 1}, \ldots, P_{k_1} \right), \left( P_{k_1 + 1}, \ldots, P_{k_2} \right), \ldots, \left( P_{k_{s - 1}+ 1}, \ldots, P_{k_s} \right), $$其中 ,且对于 ,子序列 用一个新点 替代。这时我们说 这些点被「收缩」到了点 ,从而产生一个新的点集 。两个点集的相似度定义为 这些点与其对应的「收缩」后的点距离的最大值:
$$\max_{i = 1, \ldots, s} \left( \max_{j = k_{i-1}+1, \ldots, k_i}\left( d\left( P_j, Q_i \right) \right) \right) , $$其中 表示 和 之间的距离,公式为:
$$d \left( \left(x_1, y_1 \right), \left( x_2, y_2 \right) \right) = \sqrt{ \left( x_2 - x_1 \right)^2 + \left( y_2 - y_1 \right)^2 } $$上图为一个将 收缩为 的例子,其中 被收缩为 , 被收缩为 .
给定 个点组成的序列,你需要将其「收缩」为最多 个点,使得相似度最小。原序列可以任意切割。受限于浮点数的精度限制,只要答案比最优解多出不超过 即算正确。
输入格式
第一行两个整数 和 ,,用一个空格分开。
接下来 行每行两个整数,用一个空格分开。第 行两个整数 (),表示 的坐标为 .
输出格式
第一行一个实数 ,表示与原序列的相似度。
接下来一个整数 ,表示收缩后点集的大小。
接下来 行表示 的坐标。每行两个整数 和 表示 的坐标 。
翻译来自于 LibreOJ。
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