【难题】动态规划 NOI 162:Post Office 7624:山区建小学——找状态方程有点难 思路详细

本文介绍了一道动态规划问题,涉及到在V个村庄中选择P个邮局,使所有村庄到最近邮局距离之和最小。通过状态转移方程dp[i][j]和m[i][j]来求解,其中dp[i][j]表示在1~i个村庄建j个邮局的最小路径,m[i][j]表示从i到j建一个邮局的最小路径。思路中关键在于理解状态变化并正确设置状态转移方程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:点击打开链接

题目大意:V个村庄,P个邮局,邮局建在村庄上,求一种建法,让V个村庄到最近邮局的距离最小

dp[i][j]:表示在1~i个村庄中建j个邮局时的路径最小值 

m[i][j]:表示从i到j只建立一个邮局的路径的最小值

若从第i个村庄到第j个村庄只选取一个作为邮局的话则选择第(i+j)/2个

一开始我没懂,直到自己画了个图,假设把在5建的邮局移到4,则其他村庄的距离变化如图,从4到3不会变化,所以除法向下取整不会有问题。


则状态转移方程:m[i][j]=m[i][j-1]+a[i]-a[(i+j)/2]

怎么理解呢?
1)i+j为偶数,有以下序列,此时在2建邮局
    1 2 3
    新加一个村庄,此时还是在2建邮局
    1 2 3 4
    则m[1][4]=m[1][3]+(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值