- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * 动态规划题目分析 题目目录 走迷宫问题(maze) 叠放箱子(boxes) 走道铺砖(floor) 三色二叉树(tro) 艺术馆火灾(fire) 打砖块(birke) 火车调度(rail) 重建道路(roads) 走迷宫问题(maze) 给你N*N的格子,每个格子里面有一个数。 从左上角出发,每次可以向上下左右四个方向最多移动K格。 并且规定每次到达的格子的数字必须大于上一次所在方格的数字。 要求你走过的方格的所有数之和最大,并输出这个最大和。 题目分析 我们可以把这个矩阵变为一个图,每个格子看成一个点,如果某个格子能够到另外一个格子,则连一条有向边。 我们可以看到这是一个有向图,那么对于某个点有影响的点是数字比它小的点。 题目分析 那么我们可以得到方程: F[i,j]=max(f[x,y])+a[i,j](点(x,y)能够到达点(i,j)) 那么方程怎么实现转移呢? 我们可以分析,如果当某个点被扩展时,那么这个点要达到最优状态,及这个点不能被其它没扩展的点到达。 怎样处理呢?我们知道当某个点的数比这个数小时,就有可能到达这个点,我们就可以先把这些点从小到大排序,然后一次处理即可。 处理时是像广搜一样由已知状态扩展到未知状态, 时间复杂度:O(NNK); 叠放箱子(boxes) 有一批箱子,编号为1到N。 每一个箱子都有自身重量和可承受重量。 现在要把这些箱子叠放在一起,并且要满足这些条件: 一、每个箱子上最多只能直接叠放一个箱子; 二、编号较小的箱子不能放在编号较大的箱子之上; 三、每个箱子之上的所有箱子重量之和不得超过该箱的可承受重量。 问最多可以叠放多少箱子。 题目分析 对于这题目输出方案,我们可以用记录某个状态是由那个状态得到的,这样我们可以得到方案数。 那么怎样求最大的叠放数呢?我们不妨倒过来分析:F[i,j]表示后面编号为I到N的物品到达重量为J时最多可以放多少个物品,方程为: F[I,j]=max(f[i+1,j-m[i]]+1(满足j-m[i]=w[i]),f[i+1,j]),我们再用La[I,j]记录这个状态是由f[i+1,la[I,j]]得到的。 时间复杂度为:O(3000N) 走道铺砖(floor) 给你N*M的图(N*M为偶数),然后用1*2的方块把这个图全部铺满。 问有多少个不同本质的方案。 Min(n,m)=12;n,m=40; 题目分析 可以知道:N,M中有一个特别小。 我们就可以用状态压缩的动态规划来求解。 首先对某一列分析,这一列可能有些格子已经被占领,那么其它的格子要么被方块横放,要么被方块竖放,那么下一列的初始状态可以搜索出来。 题目分析 F[I,j]表示,处理到第I列时,在第I-1列放置方块之后的第I列状态用二进制表示为J时不同方案数。 我们就可以通过搜索求出F[I+1,X]来。 最后处理到F[n,X](nm)时,那么对于状态X搜索时只能竖放砖头。 答案就是F[n,2^m-1]。 时间复杂度:O(m2^2n)。 注意要用高精度。 三色二叉树(tro) 给你一颗二叉树,某个节点有可能只有一个儿子节点。 然后给这些节点染成3种颜色,0,1,2 要求:一个节点与其子节点的颜色必须不同 ;如果该节点有两个子节点,那么这两个子节点的颜色也必须不相同 。 问最多和最少有多少个点能被染成0。 题目分析 我们知道这个问题是要在树上进行动态规划,那怎样划分状态呢? 能够影响一个节点的状态只有它的儿子节点,设F[root,j]表示以根节点为root的子树时,且节点root染成j这颜色所需求最少的0颜色是多少。 方程为F[I,j]=max(f[i.l,p1]+f[i.r,p2]+da)且(p1p2j;当j=0时da=1否则da=0,). 同理我们也可以求出最少需要多少0; 时间复杂度:O(N); 艺术馆火灾(fire) 由LSY讲解 打砖块(brike) 在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,……最下面一层仅有一块砖。第i层的砖块从左至右编号为1,2,……i,第i层的第j块砖有一个价值a[i,j](a[i,j]=50)。 如果你要敲掉第i层的第j块砖的话,若i=1,你可以直接敲掉它,若i1,则你必须先敲掉第i-1层的第j和第j+1块砖。 你的任务是从一个有n(n=50)层的砖块堆中,敲掉(m=500)块砖,使得被敲掉的这些砖块的价值总和最大。 题目分析 我们先把这些砖块都向左移动,使他成直角三角形。 如果把位置(i,j)的砖块打掉,那么就必须把位置(i-1,j)和(i-1,j+1)的砖块打掉。 那么对于位置(x,y),yj的是不会影响位置(i,j)的。 题目分析 我们把状态重新定义: 如上图,F[I,J,K]表示新位置(I,
您可能关注的文档
最近下载
- 医疗器械 质量手册.doc VIP
- SYB第八步(3)-制定销售和成本计划.ppt VIP
- 2025广东惠州市生态环境局博罗分局和博罗县污染防治攻坚战总指挥部办公室招聘编外人员38人考试备考试题及答案解析.docx VIP
- 2024年浙江省嵊泗县人民医院公开招聘护理工作人员试题带答案详解.docx VIP
- 常用急救药品ppt课件.pptx VIP
- 人教版八年级下册数学期末测试题汇总.doc VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 泉州公交集团招聘考试真题2024.docx VIP
- 高中英语语法知识点总结.pdf VIP
文档评论(0)