#zkw线段树,二分,动态规划#洛谷 2605 JZOJ 1587 基站选址

本文介绍了如何使用线段树和二分查找优化动态规划算法,以解决洛谷2605和JZOJ 1587的基站选址问题。通过添加虚拟村庄避免边界问题,然后利用状态转移方程f[i][j]进行计算。通过优化,将时间复杂度降低到O(n log n k),实现了问题的高效求解。
摘要由CSDN通过智能技术生成

题目


分析

首先我们在最后加上一个无限远的虚拟村庄,以避免最后一个村庄没有被考虑,接着
f [ i ] [ j ] f[i][j] f[i][j]表示前 i i i个村庄安放 j j j个基站,其中第 i i i个村庄安放一个基站的最少费用
显然状态转移方程为 f [ i ] [ j ] = m i n { f [ k ] [ j − 1 ] + c o s t [ k ] [ j ] } + c [ i ] f[i][j]=min\{f[k][j-1]+cost[k][j]\}+c[i] f[i][j]=min{ f[k][j1]+cost[k][j]}+c[i]
时间复杂度 O ( n 2 k ) O(n^2k) O(n2k),显然是不能接受
我们计算出 s t [ i ] , e d [ i ] st[i],ed[i] st[i],ed[i]表示最左、右能覆盖第 i i i个区间的范围,用二分实现,那么建一个邻接表, e d

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值