- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划习题总结
【0-1背包】
{题目}
一个旅行者有一个最多能用M体积的背包,现在有N件物品,它们的体积分别是W1,W2,……,Wn,它们的价值分别为P1,P2,……,Pn.若每种物品只有一件求旅行者能获得最大总价值。
{思路}
f[i,v]表示前i件物品恰放入一个容量为 v的背包可以获得的最大价值
动态转移方程:f[i,v]=max{f[i-1,v],f[i-1,v-w [i]]+p[i]}
边界条件:i=0 或 v=0 时 f:=0
{样例}
输入:100 5
77 92
22 22
29 87
50 46
99 90
输出:133
【最长不降字串】【导弹拦截】
{题目}
设有整数序列b1,b2,b3,…,bm,若存在下标i1i2i3 …in,且bi1bi2bi3 …bin,则称 b1,b2,b3,…,bm中有长度为n的不下降序列bi1 , bi2 ,bi3 ,…,bin 。
求序列b1,b2,b3,…,bm中所有长度(n)最大不下降子序列
{思路}
f(i)为前i个数中的最大不下降序列长度
动态转移方程:f(i)=max{f(j)+1} (1=ji=m,bjbi)
边界条件:F(1)=1
{样例}
输入:389 207 155 300 299 170 158 65
输出:6
【机器分配】
{题目}
总公司拥有高效生产设备M台,准备分给下属的N个公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M=15,N=10。分配原则:每个公司有权获得任意数目的设备,但总台数不得超过总设备数M。
数据文件第一行保存两个数,第一个数是设备台数M,第二个数是分公司数N。接下来是一个M*N的矩阵,表明了第I个公司分配J台机器的盈利。
{思路}
f[i,j] 表示前i个公司,分j台设备的最大盈利
动归方程:f(i,j)=max{f(i-1,j-k)+v[i,k]} k=0,1,…,j
边界条件:k=0 or i=0 则 f:=0
{样例}
输入:3 3
30 40 50
20 30 50
20 25 30
输出:70
【数字金字塔】
{题目}
数字塔一共有n层,第i层有i个数字,从最上面一个数字开始走,每向下一层时可以向左或向右走,最后的得分为所经过的数字和。请求出最大得分。
{思路}
f[i,j]表示在第i行第j个位置的最大得分
动态转移方程:f[i,j]:=f[i-1,j-1]+num[i,j] {i=j}
f[i,j]:=max(f[i-1,j],f[i-1,j-1])+num[i,j]; {ij}
边界条件:i=1 f[i,j]:=num[i,j]
{样例}
输入:5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出:30
【最短路径】
{题目}
求两点间的最短路径长度
{思路}
f(x)表示点x到y的最短路径长度
动态转移方程:f(x)=min{f(i)+a[x,i]} a[x,i]0 ,xi=n
边界条件:f(y)=0
【凸多边形三角划分】
{题目}
给定一个具有N(N50)个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?
{思路}
F[I,J](IJ)表示从顶点I到顶点J的凸多边形三角剖分后所得到的最小乘积
动态转移方程:
F[I,J]=Min{F[I,K]+F[K,J]+S[I]*S[J]*S[K]} (0IKJ=N)
边界条件:F[1,2]=0
目标状态:F[1,N]
{样例}
输入:5
121 122 123 245 231
输出:The minimum is The formation of 3 triangle:3 4 5, 1 5 3, 1 2 3
【系统可靠性】
{题目}
一个系统由若干部件串联而成,只要有一个部件故障,系统就不能正常运行,为提高系统的可靠性,每一部件都装有备用件,一旦原部件故障,备用件就自动进入系统。显然备用件越多,系统可靠性越高,但费用也越大,那么在一定总费用限制下,系统的最高可靠性等于多少?
给定一些系统备用件的单价Ck,以及当用Mk个此备用件时部件的正常工作概率Pk(Mk),总费用上限C。求系统可能的最高可靠性。
{思路}
F[I,money]表示将money的资金用到前I项备用件中去的最大可靠性
动态转移方程:F[I,money]=max{F[I-1,money–k*Cost[I]]*P[I,k](0=I=n,0=K=money div Cost(I))
边界条件:F[0,0]=0
目标状态:F[n,C]
{样例}
输入:2 20
文档评论(0)