- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划总结
河北省第二中学 李博
一. 树的动态规划。
树的dp 一般来说用记忆化搜索好写,但是会有栈溢出的危险。
类型1:所描述的树由于边上没有制约关系,可以转化成左孩子右兄弟的二叉树,然后进行
动态规划。
代表题目:选课(ctsc97)、奶牛农场(bjoi02)
奶牛农场:它实际上属于第三类问题,不过由于父子间的边无权,可以转化成此类,但实际
上还是3中的方法。F(I,j)=min{f(left(i),k)+f(right(i),j-k)}f(left(i),0)=1{表示I以下不要的话就
要断路}
类型2:确定某最优位置等,利用树的性质,开始任选一点,从此点开始贪心或动归来进行
移动。主要部分是相邻点的转移。
代表题目:电脑网络(ural1056)、粮仓(sgoi13)、校园网改造(ahoi03)
对于前两个题可以证明任意点的相邻点有且只有1个点满足选此点比当前点更优或一样,如
果一样那么这两个点都是最佳点。这样的树最多有2个最佳点。对于《校园网改造》,很明
显的树的dp 问题。有位高手用记忆化搜索做,结果出了 stack over 的问题。。。我建议用递
推的方法做。先从根宽搜拓展出序列,再dp。要算出点i 和其晚辈节点的总节点数、总延时
pi,假如在i的子节点中选一个点j,使得(i,j)为光缆,且剩下的光缆由j及其晚辈节点中组
成的最优值和次优值和位置 lm1,lm2,m1,m2。则以i 点及其晚辈节点组成光缆的最优解为
pi-pm1-pm2-(它们和i 之间连边的值+lm1+lm2 只要枚举每个i即可。求lm1,lm2 要注意,有
位高手就出错了。
类型3:多叉树的dp,f(I,j)第I个点取值j的情况,只要从左到右对它的每个孩子进行归并
就可以出解,由于除根外,每个点的数组都被dp一次(只有一个父亲),时间复杂度o(n^3)。
代表题目:Tinux 系统(hnoi02)、奶牛农场(bjoi02)、贪吃的九头龙(noi2002)
贪吃的九头龙:f[i,0,j]=min{f[i,0,t]+f[si,0,j-t]+c(i,si),f[i,0,t]+f[si,1,j-t]}
[i,1,j]=min{f[i,1,t]+f[si,0,j-t],f[i,1,t]+f[si,1,j-t]+(c(i,si)or0)(*n=2,first,else
last*)}
Tinux系统:对目录按耗时由大到小排序,f[i,j]表示I个文件只许用前j个目录。
f[i,j]=min{f[i-1,j-1]+cj,(i/j=1)
f[i-t,j-1]+f[t,k]+cj*t^2(i/j=t=i)}
由于每个subtree 的结构相同,复杂度为o(kn^2)。可证明对于确定的j,1=I=n/k*j 才
需要保存。
优化要从细处开始,一个排序,可以使方程简化,空间节省。如果从小到大排就徒劳了。
类型4: 我认为这是个新类型的题。以往的题都是确定了父节点的状态,再找相应子节点
的状态来计算,此题却是事先父节点的状态不明,需要由子节点来共同决定。而想问题时先
假设父节点已确定,那么如果子节点与父节点状态相同就要换一个状态,也就是第二好的状
态,而第三好。。。的都没必要算。那么对于父节点的任何状态,如果和每个子节点的第一状
态都不同,只要考虑最小的两个,否则必是子节点第一状态中的某个。这样dp可以推出父
节点最好的两个状态是什么。由于每个点都被考虑一次,考虑别的一次,所以时间复杂度是
o(n)。
代表题目:宝石问题(boi2003)
类型5:三角剖分树,在poi 中多次出现(only3times…),用三个顶点均是凸多边形顶点的
三角形把凸多边形划分成一些区域。以每个三角为顶点,与之有边重合的三角形之间连边,
形成一棵度最多为3的无根树,它具有很良好的性质。
代表题目:多边形之战(poi99){见数学问题总结}、小岛(poi01)、多边形(poi98){利用
三角剖分树,有o(n)的perfect 算法:}
小岛:题目让求出两国间相邻情况以及边界的收费情况,似乎没什么思路,联想一下多边形
之战,把题目抽象成树试试?成了!是棵除根节点外非叶字节点有两个孩子的树。显然min=
两点到1的距离和-两点间距离最小的一定在两棵不同的子树上。且 min/2 是父亲与其父亲
边的权值。这样问题解决,时间复杂度o(n^3)。
多边形:做了island 后,我重看了这个题,想到了用树形结构解决这个
问题。第一步当然是建树,
您可能关注的文档
- 第四章 windows ce 数据库操作.pdf
- 第二篇_Fortran程序设计基础.ppt
- 统计学习题答案 第5节 参数估计.doc
- 单片机汇编程序(算术逻辑运算)_附件.ppt
- 大容量硬盘使用攻略_附件.doc
- 第8讲 第2讲 触发器.ppt
- 第十一章 后台管理使用说明.docx
- 基因识别问题和其算法实现.doc
- 第七章 (Multisim数电仿真) DA转换器.doc
- 在职消费_员工工资及企业绩效.pdf
- 中国国家标准 GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- 《GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法》.pdf
- GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/T 32455-2024航天术语 运输系统.pdf
- GB/T 32455-2024航天术语 运输系统.pdf
- 《GB/T 32455-2024航天术语 运输系统》.pdf
- GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
- 中国国家标准 GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
文档评论(0)