折线
题目描述:
小 N 正在进行一项水利工程。
其工程的规划区域可被抽象为一个二维空间,内部含 \( n \) 个顶点,编号为 \( 1 \) 到 \( n \)。顶点 \( i \)(\( 1 \le i \le n \))的坐标为 \( (x_i, y_i) \),可能有多个顶点共享一个坐标。每个顶点都对应了规划区域的一片水源。
小 N 计划通过水渠将多个顶点的水源汇集在一起。对于两个顶点 \( i, j \)(\( 1 \le i, j \le n \)),水流能从顶点 \( i \) 到达顶点 \( j \),当且仅当以下两个条件均被满足:
- \( i < j \);
- \( |x_i - x_j| + |y_i - y_j| \le m \),其中 \( m \) 为一个给定的常数。
称一条路径是一个由顶点组成的序列 \( [p_0, p_1, \ldots, p_t] \),满足对每个 \( i \)(\( 0 \le i < t \)),水流可从顶点 \( p_i \) 到达顶点 \( p_{i + 1} \)。我们定义这条路径的流量为 \( t \),落差为 \( p_t - p_0 \)。
小 N 希望一条路径拥有适宜流量的同时落差较小,这样工程就会更加稳定。她也不想让自己工程的规模太大,因此她仅会考虑流量不大于 \( k \) 的路径。
你的任务是,对每个满足 \( 1 \le i \le k \) 的 \( i \),求出流量为 \( i \) 的路径的最小落差。
输入格式:
输入格式如下:
\( \quad \begin{matrix} n & m & k \\ x_1 & y_1 \\ x_2 & y_2 \\ \vdots & \vdots \\ x_n & y_n \end{matrix} \)
输出格式:
输出一行 \( k \) 个整数,其中第 \( i \) 个整数代表流量为 \( i \) 的路径的最小落差。
- 特别的:如果不存在流量为 \( i \) 的路径,在第 \( i \) 个位置输出一个字符
-
。
样例输入:
5 2 3 1 5 2 4 5 3 4 2 3 3
样例输出:
1 2 -
提示:
样例解释 #1
所有可能的路径及其属性如下:
路径 | [1, 2] | [3, 4] | [4, 5] | [3, 5] | [2, 5] | [3, 4, 5] | [1, 2, 5] |
流量 | 1 | 1 | 1 | 1 | 1 | 2 | 2 |
落差 | 1 | 1 | 1 | 2 | 3 | 2 | 4 |
对于所有数据:
- \( 2 \le n \le 10^5 \)
- \( 1 \le m \le 10^5 \)
- \( 1 \le k \le 100 \)
- \( 1 \le x_i \le n \)
- \( 1 \le y_i \le n \)
子任务 | 分值 | 附加约束 |
\( \bf1 \) | \( 7 \) | \( n \le 50 \);\( k \le 50 \) |
\( \bf2 \) | \( 19 \) | \( n \le 1000 \);\( x_i = 1 \) |
\( \bf3 \) | \( 24 \) | \( n \le 5000 \) |
\( \bf4 \) | \( 6 \) | \( x_i = 1 \);\( y_i \le y_{i + 1} \) |
\( \bf5 \) | \( 21 \) | \( x_i = 1 \) |
\( \bf6 \) | \( 8 \) | \( x_i + y_i \le x_{i + 1} + y_{i + 1} \) |
\( \bf7 \) | \( 15 \) | \( - \) |
时间限制: 6000ms
空间限制: 512MB
来源: ItsMartlet_