高中OJ3784. 【NOIP2014模拟8.19】邮局选址

题目大意:

有N个村庄,其中要在不同的村庄里建M个邮局,求每个村庄到最近邮局的最小距离。

有如下4种情况:

①该村庄有邮局                     距离为0

②该村庄在第一个邮局之前   距离为到第一个邮局的距离

③该村庄在两个邮局之间       距离为到最近村庄的距离

④该村庄在最后的邮局之后   距离为到最后的邮局的距离


题目分析:

这是道稍难的DP,就是之前做过的气象牛的弱化版(因为那道我还没做出来)


设F[i,j]表示当前放置到第i个村庄且第i个村庄有邮局,当前已经放置j个邮局的最优解。

当j=1时,很容易想到全部到一个那个有邮局的村庄。

当j>1时,可以想到如下图:

设当前选择的邮局位置为i,当前共选了j个邮局且上一个选的位置为k:


其中在第i个邮局放置之前的状态如下:


放置后,位置在i以后的村庄都转移到了第i个村庄,同时因为第i个村庄已经有了邮局,所以距离为0。


接下来在比较i和k之间的村庄,看看到那个邮局更近。


最后答案就是min(F[i,m]) (i≥m)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值