ImageVerifierCode 换一换
格式:PPT , 页数:21 ,大小:448.50KB ,
资源ID:4996536      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4996536.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(动态规划题目分析.ppt)为本站会员(myk79025)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

动态规划题目分析.ppt

1、动态规划题目分析,题目目录,走迷宫问题(maze) 叠放箱子(boxes) 走道铺砖(floor) 三色二叉树(tro) 艺术馆火灾(fire) 打砖块(birke) 火车调度(rail) 重建道路(roads),走迷宫问题(maze),给你N*N的格子,每个格子里面有一个数。 从左上角出发,每次可以向上下左右四个方向最多移动K格。 并且规定每次到达的格子的数字必须大于上一次所在方格的数字。 要求你走过的方格的所有数之和最大,并输出这个最大和。,题目分析,我们可以把这个矩阵变为一个图,每个格子看成一个点,如果某个格子能够到另外一个格子,则连一条有向边。 我们可以看到这是一个有向图,那么对于某个

2、点有影响的点是数字比它小的点。,题目分析,那么我们可以得到方程: Fi,j=max(fx,y)+ai,j(点(x,y)能够到达点(i,j) 那么方程怎么实现转移呢? 我们可以分析,如果当某个点被扩展时,那么这个点要达到最优状态,及这个点不能被其它没扩展的点到达。 怎样处理呢?我们知道当某个点的数比这个数小时,就有可能到达这个点,我们就可以先把这些点从小到大排序,然后一次处理即可。 处理时是像广搜一样由已知状态扩展到未知状态, 时间复杂度:O(NNK);,叠放箱子(boxes),有一批箱子,编号为1到N。 每一个箱子都有自身重量和可承受重量。 现在要把这些箱子叠放在一起,并且要满足这些条件: 一

3、、每个箱子上最多只能直接叠放一个箱子; 二、编号较小的箱子不能放在编号较大的箱子之上; 三、每个箱子之上的所有箱子重量之和不得超过该箱的可承受重量。 问最多可以叠放多少箱子。,题目分析,对于这题目输出方案,我们可以用记录某个状态是由那个状态得到的,这样我们可以得到方案数。 那么怎样求最大的叠放数呢?我们不妨倒过来分析:Fi,j表示后面编号为I到N的物品到达重量为J时最多可以放多少个物品,方程为: FI,j=max(fi+1,j-mi+1(满足j-mi=wi),fi+1,j),我们再用LaI,j记录这个状态是由fi+1,laI,j得到的。 时间复杂度为:O(3000N),走道铺砖(floor),

4、给你N*M的图(N*M为偶数),然后用1*2的方块把这个图全部铺满。 问有多少个不同本质的方案。 Min(n,m)=12;n,m=40;,题目分析,可以知道:N,M中有一个特别小。 我们就可以用状态压缩的动态规划来求解。 首先对某一列分析,这一列可能有些格子已经被占领,那么其它的格子要么被方块横放,要么被方块竖放,那么下一列的初始状态可以搜索出来。,题目分析,FI,j表示,处理到第I列时,在第I-1列放置方块之后的第I列状态用二进制表示为J时不同方案数。 我们就可以通过搜索求出FI+1,X来。 最后处理到Fn,X(nm)时,那么对于状态X搜索时只能竖放砖头。 答案就是Fn,2m-1。 时间复杂

5、度:O(m22n)。 注意要用高精度。,三色二叉树(tro),给你一颗二叉树,某个节点有可能只有一个儿子节点。 然后给这些节点染成3种颜色,0,1,2 要求:一个节点与其子节点的颜色必须不同 ;如果该节点有两个子节点,那么这两个子节点的颜色也必须不相同 。 问最多和最少有多少个点能被染成0。,题目分析,我们知道这个问题是要在树上进行动态规划,那怎样划分状态呢? 能够影响一个节点的状态只有它的儿子节点,设Froot,j表示以根节点为root的子树时,且节点root染成j这颜色所需求最少的0颜色是多少。 方程为FI,j=max(fi.l,p1+fi.r,p2+da)且(p1p2j;当j=0时da=

6、1否则da=0,). 同理我们也可以求出最少需要多少0; 时间复杂度:O(N);,艺术馆火灾(fire),由LSY讲解,打砖块(brike),在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,最下面一层仅有一块砖。第i层的砖块从左至右编号为1,2,i,第i层的第j块砖有一个价值ai,j(ai,j1,则你必须先敲掉第i-1层的第j和第j+1块砖。 你的任务是从一个有n(n=50)层的砖块堆中,敲掉(m=500)块砖,使得被敲掉的这些砖块的价值总和最大。,题目分析,我们先把这些砖块都向左移动,使他成直角三角形。 如果把位置(i,j)的砖块打掉,那么就必须把位置(i-1,j)和(i

7、-1,j+1)的砖块打掉。 那么对于位置(x,y),yj的是不会影响位置(i,j)的。,题目分析,我们把状态重新定义:如上图,FI,J,K表示新位置(I,J)时打掉了K快砖之后所得到的最大价值总和。 FI,j,k=max(fi-1,p,k-j+daI,j) 用滚动数组来求解即可。 时间复杂度为:O(N3K),通过优化可以降为O(N2K),铁路调度(rail),给你N(N=250)列火车的进站和出站时间。 然后给你M(M=3)个轨道。 问你最多能够进站多少量火车。,题目分析,由于M不同,所用的方法也不同。 但我们可以把列车先按出站时间排序。 M=1:fi表示前I辆列车进站且第I辆列车刚刚进站最多

8、有多少量列车。 M=2:FI,k1,k2,表示处理前I辆列车且,进站的列车为K1,K2时最多能进多少辆。,题目分析,M=3:可以用状态(a,b,c)来表示,且出站时间a=b=c。 如果对于状态(b,c,d),且d的入站时间大于a的出站时间的话,就状态(a,b,c)向状态(b,c,d)连一条有向边,权值为1。 建立一个起点,对入度为0的状态加入一条边权为3的有向边。 在建立一个终点,使出度为0的状态连向它,且权值为0。 那么最优值是从起点到终点的最长路(这个图无环)。,重建道路(roads),给你N个节点的树。 问你最少毁坏多少条边使得有一个节点为P的子树。,题目分析,由于我开始看错了题,所以想了另一个方法。 我们可以看出这是树形DP。 首先可以把这颗森林变为二叉树(及左儿子,右兄弟),且节点1为这可树的根设Di表示在原树中这个子树的节点个数。 FI,j表示在新树中以节点I为根的子树中如果使J个节点脱离,最少需要摧毁多少条边。 FI,j=min(fI.l,k+fi.r,j-k,fi.r,j,fi.r,j-di+1); 那么答案为:min(f1,n-p,fi.l,di-p+1)。 时间复杂度O(NP2),

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报