题目

给定两条平行轴上的点,两条轴的距离是s(s<=50)
第一条轴上给定m(m<=1000)个点,第二条轴上给定n(n<=1000)个点,点坐标x(0<=x<=1000)
在距两条轴距离相等且平行的线上,标记k(k<=100)个位置点,
使得n+m个点,点i对k个位置中距离最近的点算距离,记为xi
要求最小,并输出这个值,误差不超过1e-5
思路来源
gym AC代码
【学习笔记】各类基于决策单调性的dp优化_决策单调性优化dp_sophilex的博客-优快云博客
题解
首先,由于轴两侧是等距的,可以把轴上的点合到其中一侧并排序,
d即线上修建k个点,轴上n+m个点,到线的距离为s/2,每个点到最近点的距离平方的和最小
那么每个修建的点对应的肯定是一段连续的区间,枚举最后一个修建点对应了哪一段朴素dp即可
为了确定修建点的位置,
考虑到
的距离的平方,为
最小化点到平行轴线上k点距离平方和的dp优化

文章讲述了如何使用动态规划(DP)解决一个与轴对齐的点集合问题,目标是在两条平行轴线上选择k个点,使得所有点到这些点的距离平方和最小。通过单调性优化和决策点的选择,降低了计算复杂度。
最低0.47元/天 解锁文章
346

被折叠的 条评论
为什么被折叠?



