动态规划例题总结资料.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

mbxy007 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档