【DG特长生2018 T3】【SSL 2887】【luogu P2803】建学校问题 / 学校选址 II

这篇博客讨论了一道名为'建学校问题 / 学校选址 II'的算法题目,涉及到SSL 2887和luogu P2803。博主通过动态规划(DP)策略解决该问题,详细解释了如何使用二分查找确定城市间的最优分界点,并给出了转移方程式,以最小化总费用。文章提供了完整的思路和代码实现。
摘要由CSDN通过智能技术生成

建学校问题 / 学校选址 II

题目链接:SSL 2887 / luogu P2803

题目大意

有 n 个城市链状排着,编号相邻的连接,然后有边权和点权。
你可以选 k 个点,然后对于每个点,它会找距离它最近的你选的点,然后它的费用就是它的点权乘到你选的点的距离。
然后你要让总费用最小。

思路

看到题你考虑 DP。

f i , j , k f_{i,j,k} fi,j,k 为前 i i i 个城市,选 j j j 个地方建学校,最后一个地方建在 k k k 的最小费用。
那你考虑怎么转移,你会想到,对于两个学校,中间如果没有别的学校,它就会有一个分界点。
分界点左边的城市到去左边的学校,右边的城市去右边的学校。

那分界点到两个城市的距离肯定要尽可能近,就可以通过二分来搞,找第一个左边大于右边的或第一个右边大于左边的。
这个我们可以预处理出来。

然后你就重新考虑怎么转移。
那你考虑枚举了前面的三个,然后你就考虑找前面的倒数第二个学校,然后找到它所统辖的右边界(二分的那个)。然后对于最后一个学校 k k k,就它会统辖二分的后面一个位置到 i i i
那至于后面的统辖费用要怎么算呢?可以分成它统辖它前面的和它统辖它后面的。
那这个我们也可以预处理出来。

然后我们就可以真正的列出转移方程式了:
f j , i , k = min ⁡ l = 1 k − 1 { f e f l , k , i − 1 , l + l e f k , e f l , k + 1 + r i g k , j } f_{j,i,k}=\min\limits_{l=1}^{k-1}\{f_{ef_{l,k},i-1,l}+lef_{k,ef_{l,k}+1}+rig_{k,j}\} fj,i,k=l=1min

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值