pku1160 Post Office

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1160

题意简述:有n个村庄,m个邮局,给定各村庄的坐标位置,求n个村庄建立m个邮局使得所有村庄距它最近邮局的距离的和最小,输出最小值。

分析:看起来和前一道题目有点类似,但是我写这道题目的时候感觉要麻烦一点,所以可以把这题归类为上一道题的变形加强。下面来确定状态,设dp[i][j]为前i个村庄建立j个邮局所得的最优值。

状态转移:在写转移方程之前还需对一些数值进行处理,相信我们都见过这个问题的一个特例:当邮局只有一个时,邮局的位置在所有村庄排列后的中位数对应的位置时,总距离最小。

所以这里同时可设cost[i][j]表示i—j段只有一个邮局时的最小总距离(所求方法已经给出)。所以现在写转移方程也变得容易了:dp[i][j]=min(dp[k][j-1]+cost[k+1][i])(1<=k<=i-1)

代码如下所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值