动态规划总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态规划总结 by Amber 按状态类型分 写在前面: 从状态类型分,并不表示一题只从属于一类。其实一类只是一种状态的表示方法。 可以好几 种方法组合成一个状态,来解决问题。 编号(长度)动态规划 共性总结 本类的状态是基础的基础,大部分的动态规划都要用到它,成为一个维。 一般来说,有两种编号的状态: 状态(i)表示前i个元素决策组成的一个状态。 状态(i)表示用到了第i个元素,和其他在1到i-1问的元素,决策组成有的 一个状态。 题库 最长不下降子序歹U 以一元组(i)作为状态,表示第i个作为序列的最后一个点的时候的最长序列。 丁是很容易想到O(n2)得算法。但本题可合理组织状态,引入一个单调的辅助数 组,利用单调性二分查找,优化到 O(nlogn)。关丁优化详见优化章。 一些问题可将数据有序化,转化成本题。 应用: 拦截导弹(NOIP99 Advance 1) 就是原题。 Beautiful People (sgu199),要将数据有序化:其中一个权作为第一关键字不 下降排列,另一个权作为第二关键字不上升。 Segment(ural 1078),将线段的左端点有序化就可以了。 LCS 状态(i,j),表示第1个字符申的第i位,与第2个字符申的第j位匹配,得 到的最长的申。若有多个申要 LCS则加维,即几个申就几个维。我也将此题归 入路径问题。 花店橱窗布置(IOI99) 见路径问题。 区间动态规划 共性总结 本类问题与下一章的划分问题的决策的分割点无序 交集比较大(占本类问题 的 30%。 题库 石子合并 见划分问题 模版匹配(CEOI01,Patten) 这题特殊的地方是状态的值是一个集合而不是一个数。 不可分解的编码(ACM World Final 2002) Electric Path (ural1143) 邮局(IOI2000 Day2 1) 若状态表示的思路从第i个村庄可以从届丁哪个邮局,无最优子结构。转变一 个方向:第k个邮局可以“控制” 一个区间的村庄[i,j] 。丁是方程就显然了 : f(k,i,j)=min{f(k-1,p,i-1)+w(i,j)}(k-1=p=i-1) S(i)为村庄i至U原点的距离。 w(i,j)=min{k| Sum{|S(k)-S(p)|}(i=p=j)}(i=k=j) 找到[i,j]问最好的 一个邮局点。 不过可以发现Sum{|S(k)-S(p)|是单调的,所以取中位数就可以了。即上式 中k的取值范围只有floor((i+j)/2), ceil((i+j)/2) 两个。Floor是下取整。C eil是上取整。这样每次转移时间降到 O(1)。 注意到是区间连续的,即(p,i-1) 和(i, j) 中的i-1, i 是连续的,所以空间 可以降维:f(i,j) 表示放前i个邮局到前j个村庄的最优值。 f(i,j)=min{f(i-1,p-1)+w(p,j)}(i-1=p=j-1} e(i,j)为当f(i,j) 到达最优值时的p. 通过证明四边形不等式,得到 e(i,j)=e(i,j+1)=e(i+1,j+1) 决策数量乂少了 一个数量级。 坐标动态规划 共性总结 之后的一些问题,状态是由坐标维与其他的维组成。本类与 划分问题(是2 维或多维的坐标系的划分)与路径问题的交集占本类问题中大多数。 题库 棋盘分割(NOI99 4) 主要是将公式变形,变形后的公式很容易看出方程。 状态是由2个坐标组成的4元组(x1,y1)(x2,y2),表示一个子棋盘。这有点 像之前的区间动态规划,只不过是将 1维转2维。 后见路径问题。 数轴动态规划 共性总结 题库 a) 01背包 应用: 装箱问题(NOIP01 Trade 4 ) 就是原题。 值币分割 可利用方程的性质,空间降1维。 币值可重复的值币分割(pku1742, Problem F LouTianCheng s Contest in P OJ) 使用左右法在定位上加速。 另给状态加一个属性last,记录上一次剩下的可用的同币值硬币数(利用了当 前转移是唯一前驱的特点)。 取火柴问题(sgu153 Playing with matches) Stone Pile (ural1005 Stone Pile) 公路巡逻(CTSC2000) 1.5. 5.树型动态规划 共性总结 动态规划的顺序 一般按照后序遍历的顺序,即处理完儿子再处理当前节点,才符合树的子结构的性质。 多义树转换为二义树 由于要分配附加维到各个节点,而分配附加维是个划分问题,若还是按当前节点到各个 儿子节点分配,则成了一个 整数划分问题,O(n2)。所以要把多义树转换为二义树,这 样才能按动态规划的方式只决策当前点的分配问题 ,O(n)。 加当前点的选或不选的常数维 加此维解决的

文档评论(0)

189****2507 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档