版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、动态规划陈爽1精选PPT为了解决一类最优化问题通过求得所有子问题的最优解来得到最终问题的最优解动态规划2精选PPT状态状态转移方程初始条件动态规划的基本要素3精选PPT线性动态规划区间动态规划状态压缩动态规划树形动态规划动态规划的分类4精选PPT状态是一维的Fi 由 Fj (ji) 得到初始条件 F0 或 F1Part 1 线性动态规划5精选PPT设有整数序列b1,b2,b3,bm,若存在下标i1i2i3 in,且bi1bi2bi3 bin,则称 b1,b2,b3,bm中有长度为n的上升序列bi1 , bi2 ,bi3 ,bin 。求最长上升序列的长度N求长度为N的上升序列的个数求本质不同的长
2、度为N的上升序列的个数N=1000例1.最长上升序列6精选PPT状态:Fi表示以bi结尾的最长上升序列长度转移方程:Fi=max(Fj+1),jI,bjbi初始条件:Fi=1, 1=iBj初始条件:Ti=1Solution7精选PPT本质不同?Orderi表示Bi在序列B中是第几大的Ti=sigma(Tj), 当某个orderj1=orderj2时,只累加一个时间复杂度:O(N2)空间复杂度:O(N)Solution8精选PPTPi 表示上身序列长度为i的序列末尾元素的最小值当计算Fi时,二分j,满足PjBiFi=Fj+1PFi=min(PFi, Bi)时间复杂度:O(NlogN)LIS O(
3、NlogN)算法9精选PPT考虑一个由N个整数构成的数列,其中1到N都在数列中出现了恰好一次。在这个数列中从左到右任取两个数,如果前者比后者大,那么这对数就是一个逆序对。而整个数列的逆序数就是其中所有逆序对的总数。例如,数列(1,4,3,2)的逆序数为3,因为存在三个逆序对:(4,3),(4,2)和(3,2)。写一个程序,计算有多少长度为N的这种数列,使它的逆序数恰为C。N=1000,C=10000例2. zbrka10精选PPT状态:Fij表示1i的一个排列,逆序对数目为j的方案数枚举1的位置Fij=sigma(Fi-1j-k),0=k=i-1时间复杂度:O(N*N*C)空间复杂度:O(N*
4、C)Solution11精选PPTFij=Fij-1+Fi-1j-Fi-1j-i第i阶段只与第i-1阶段有关滚动数组,省掉一维时间复杂度:O(N*C)空间复杂度:O(C)Solution12精选PPT如图,已知一个有向图,求一条从最左边的点走到最右边点的方案(只能从左往右走),使得所经过的权值和除以4的余数最小。例3. Mod 4 余数最小问题13精选PPT状态:Fi表示到点i的最小值转移:Fi=min(Fj+numi) mod 4),j到i有边样例就出现bug Questions14精选PPT局部最优解不能保证全局最优解本题不符合最优化性质Fij 表示到点i余数为j是否可行求出所有x=(Fk
5、p+numi)%4,Fix=trueSolution15精选PPTDP不可滥用用之前先考虑是否符合最优化原理,并且没有后效性确定了是DP之后考虑三个基本要素Summary16精选PPT状态有两维或者多维Fij表示ij这个区间的最优值Fi-1j,Fij-1 FijFik + Fkj Fij Part 2.区间动态规划17精选PPT在一园形操场四周摆放N堆石子(N100),现要将石子有次序地合并成一堆.规定每次只能选相临的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分。编一程序,由文件读入堆数N及每堆石子数(20),(1)选择一种合并石子的方案,使得做N-1次合并,得分的总和最少 (2)
6、 选择一种合并石子的方案,使得做N-1次合并,得分的总和最大例4. 石子合并18精选PPTExample19精选PPT贪心N=5,石子数分别为3 4 6 5 4 2用贪心法的合并过程如下:第一次 3 4 6 5 4 2得分 5第二次 5 4 6 5 4得分9第三次 9 6 5 4得分9第四次 9 6 9得分15第五次 15 9得分24第六次24总分:62第一次3 4 6 5 4 2得分 7第二次7 6 5 4 2得分13第三次13 5 4 2得分6第四次13 5 6得分11第五次 13 11得分24第六次24总分:61显然,贪心法是错误的。 20精选PPT用datai,j表示合并第ij颗石子的
7、分值状态:maxi,j = max(maxi, k + maxi + k, j k + datai,k + datai+k, jk) (2=k=j)初始条件:maxi,1 = 0状态:mini,j = min(mini, k + mini + k, j k + datai,k + datai+k, j k) (0=k=j)初始条件:mini,0 = 0时间复杂度:O(N2)Solution21精选PPT在一条马路上,有一排灯,一个小朋友要去关灯,如果灯没有被关掉,就会每秒造成一定的损失。小朋友一开始在某一个位置,在他左边和右边分别有一些灯,给出这些灯和他的距离以及每个灯每秒会造成的损失,求一个
8、方案使得损失最小,输出最小损失。灯的个数=1000例5. 关灯问题22精选PPT关掉的灯一定是一个连续的区间如果路过一个灯但是没有去关掉它设 optij0/1 表示区间i,j中的灯都被关掉之后的最小损失,最后一维表示小朋友的当前位置转移:考虑当前的关灯操作时间复杂度:O(N2)Solution23精选PPT设一个n个节点的二叉树tree的中序遍历为(l,2,3,n),其中数字1,2,3,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:例6. 加分二叉树(NOIP20
9、03) 24精选PPTsubtree的左子树的加分 subtree的右子树的加分subtree的根的分数 若某个子树为主,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。 试求一棵符合中序遍历为(1,2,3,n)且加分最高的二叉树tree。Solution25精选PPT注意到任意一棵子树的中序遍历一定是一段连续的区间枚举区间中的第几个元素作为这一段区间的根记fij表示中序遍历为i,j这个区间的子树的最大分数,gi表示第i个点的分数Fij=max(Fik-1*Fk+1j+gi)初始条件:Fij=0Solution26精选PPT给你一个矩阵,其边长均为整数。你想把矩阵切割成总数最
10、少的正方形,其边长也为整数。切割工作由一台切割机器完成,它能沿平行于矩形任一边的方向,从一边开始一直切割到另一边。对得到的矩形再分别进行切割。矩形边长小于等于100例7. 矩形分割问题27精选PPTFij表示长为i宽为j的矩形所需的最小正方形个数Fij=min(Fik+Fij-k,Fkj+Fi-kj)Solution28精选PPT见外部题目描述例8. psolve29精选PPT状态:Fij表示ij在一个月做完的最小所需月份枚举上一个做了ki-1转移方程:Fij=min(Fki-1+1), s1ij+s2ki-1=P, 且Fki-1合法初始条件:F00=1此题写起来有好多小细节,建议练习代码So
11、lution30精选PPT动态规划问题具有以下基本特征: 1、问题具有多阶段决策的特征。2、每一阶段都有相应的“状态”与之对应,描述状态的量称为“状态变量”。3、每一阶段都面临一个决策,选择不同的决策将会导致下一阶段不同的状态。4、每一阶段的最优解问题可以递归地归结为下一阶段各个可能状态的最优解问题,各子问题与原问题具有完全相同的结构。动态规划的基本模型31精选PPT状态压缩是一种非常暴力的动态规划,特征也非常明显,一般适用于数据规模较小的情况。状态压缩复杂度通常情况下是是指数级的,编程复杂度也相对较大。所谓状态压缩,就是把一个比较复杂的状态压缩为一个数,通常采用某一种进制的表示方法经常通过记
12、忆化搜索来实现Part 3. 状态压缩动态规划32精选PPT放寒假了,小D终于可以回家了。一个学期之后他有太多的东西想带回家。 小D的背包可以被看作一个4行N列的矩阵,每个物品放入背包的物品恰好需要占据两个相邻的方格,任意两个物品不能占据相同的方格。为了充分的利用自己的背包,小D希望背包的所有空间都放置了物品,也就是说,背包中恰好放入了2N个物品。 现在小D想知道,不同的放置方案数有多少种。 例9. 多米诺骨牌覆盖33精选PPT搜索?n很大,超时严重动态规划?如何表示状态?注意到每一列最多只有4行,每一个格子对下一行的影响只有2种:下一行对应的格子是否可以和当前格子一起放进一个物品状态压缩!0
13、/1表示每个格子的状态,4位二进制数表示一行的状态Solution34精选PPT用FkS来描述一个状态,这个状态表示已经把矩阵的前k-1列全部放满,并且第k列的覆盖情况为S(s为一个4位二进制数),此时的摆放方案数(注意,其实只有S中1的个数为偶数时状态才有意义,更加深入的探讨会发现需要使用的状态很少)。通过枚举第k列骨牌的放置方案,不难得到从Fku(u = 0 15)到Fk+1v(v = 0 15 )的转移方程。这个过程需要另外写一个程序去枚举才能完成。 Solution35精选PPTL盏灯,每盏灯为0/1,表示亮的或暗的有一个叉子有T个叉尖,相邻两个叉尖的距离等于相邻两盏灯的距离。有些叉尖断了,用0表示,否则为1叉子对准开关,可以改变灯的状态已知初始灯的状态和叉尖状态,求叉尖操作的序列使得最后亮着的灯最少L=50, T=7例10.xlite36精选PPT同一位置只可能操作一次可以从左到右依次操作FiS表示最后T盏灯灯的状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025吉林建筑安全员-C证考试(专职安全员)题库及答案
- 世界11种气候带及柱状图
- 《情报服务与创新》课件
- 《常见发疹性传染病》课件
- 单位人力资源管理制度呈现选集十篇
- 单位管理制度展示大合集人员管理篇十篇
- 学校环境调查报告
- 火灾自动报警及联动控制课程课件
- 小学英语课件-时间
- 2024年氧系漂白助剂项目可行性研究报告
- 2025年新疆兖矿集团公司招聘笔试参考题库含答案解析
- 品牌授权使用合同范例
- 非急救转运合同范例
- 车辆使用安全培训
- 肺结核的护理个案
- 陕西省汉中市2024-2025学年高一上学期12月第二次月考地理试题(含答案)
- AutoCAD2024简明教程资料
- 《中国传统文化》课件模板(六套)
- 2023年上海市录用公务员考试真题
- 义务教育历史课程标准(2024年版)
- MOOC 数字电路分析与设计-浙江大学 中国大学慕课答案
评论
0/150
提交评论