算法设计与分析:经典动态规划算法----强化版16题

本文深入探讨动态规划的概念,并通过详细解析16道强化版的动态规划问题,帮助读者掌握这一算法设计与分析的关键技巧。
摘要由CSDN通过智能技术生成

动态规划

编号

题目

1最短行驶路线

问题:

给定一个的矩形网络,设其左上角为起点S。一辆汽车从起点S出发驶向右下角终点T。网格边上的数字表示距离。在若干个网格点处设置了障碍,表示该网格点不可到达。试设计一个算法,求出汽车从起点S出发到达终点T的一条行驶路程最短的路线。

Floyd:

划分阶段:

阶段1:求所有点经过结点1到其他结点的最短距离

阶段n:求所有点经过节点n到其他结点的最短距离

状态迁移方程:d[i][j] = min{d[i][j] , d[i][k] + d[k][j]}

算法:

 

时间复杂度:O(n^3)

空间复杂度:O(n^2)

 

 

2最优旅行路线

问题:

给定一张航空图,图中顶点代表城市,边代表2城市间的直通航线。现要求找出一条满足下述限制条件的且途经城市最多的旅行线。 

从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市)

除起点城市外,任何城市只能访问1次。

分析:从西向东依次编号12,…,n。保证正确方向:往东走,选择相邻编号大于自己的,往西走,选择相邻编号小于自己的。

子问题表示:P(Vi,NV_SET(j)),NV_SET为可访问的城市集合

最优子结构:

设最优解释P={V1,V2,…,Vm},选择V1作为下一个访问的城市后,原问题变为从P’={V2,V3,…,Vm}中进行访问,子问题的解最多访问的城市个数是m-1,P’满足。

算法:

 

3 N色方柱

该算法采用回溯来做,不属于dp,这里不做讨论

4 租用游艇

问题:

长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,...,n游客可以在这些游艇出租站租用游艇,并在下游任意一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<j<=n试设计一个算法,计算出从游艇出

租站1到游艇出租站n所需的最少租金。

阶段划分:按照游艇出租站的个数划分。

阶段12

阶段23

阶段n-1:n

状态:rent[i][j]表示ij的最小花费

状态转移方程:rent[i][j] &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值