给定平面 x−O−yx-O-yx−O−y 上 nnn 个开线段组成的集合 III,和一个正整数 kkk 。试设计一个算法,从开线段集合 III 中选取出开线段集合 S⊆IS\subseteq IS⊆I ,使得在 xxx 轴上的任何一点 ppp,SSS 中与直线 x=px=px=p 相交的开线段个数不超过 kkk,且∑z∈S∣z∣\sum\limits_{z\in S}|z|z∈S∑∣z∣达到最大。这样的集合 SSS 称为开线段集合 III 的最长 kkk 可重线段集。∑z∈S∣z∣\sum\limits_{z\in S}|z|z∈S∑∣z∣ 称为最长 kkk 可重线段集的长度。
对于任何开线段 zzz,设其断点坐标为 (x0,y0)(x_0,y_0)(x0,y0) 和 (x1,y1)(x_1,y_1)(x1,y1),则开线段 zzz 的长度 ∣z∣|z|∣z∣ 定义为:
对于给定的开线段集合 III 和正整数 kkk,计算开线段集合 III 的最长 kkk 可重线段集的长度。
文件的第一 行有 222 个正整数 nnn 和 kkk,分别表示开线段的个数和开线段的可重叠数。
接下来的 nnn 行,每行有 444 个整数,表示开线段的 222 个端点坐标。
程序运行结束时,输出计算出的最长 kkk 可重线段集的长度。
4 2 1 2 7 3 6 5 8 3 7 8 10 5 9 6 13 9
17
1≤n≤5001\leq n\leq 5001≤n≤500,1≤k≤131 \leq k \leq 131≤k≤13,坐标值在 int 范围内。
int
注册一个 云斗学院 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 云斗学院 通用账户