- 1、本文档共85页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《动态规划总结_By_Amber附题》.pdf
[ADN.cn][Library]Summary 动态规划总结 by Amber
动态规划总结
by Amber
1. 按状态类型分
写在前面:
从状态类型分,并不表示一题只从属于一类。其实一类只是一种状态的表示方法。可以好几
种方法组合成一个状态,来解决问题。
1.1.编号(长度)动态规划
共性总结
本类的状态是基础的基础,大部分的动态规划都要用到它,成为一个维。
一般来说,有两种编号的状态:
状态(i)表示前i 个元素决策组成的一个状态。
状态(i)表示用到了第i 个元素,和其他在1 到i-1 间的元素,决策组成有的一个状态。
题库
a) 最长不下降子序列
以一元组(i)作为状态,表示第i 个作为序列的最后一个点的时候的最长序列。于是
很容易想到O(n2)得算法。但本题可合理组织状态,引入一个单调的辅助数组,利用单
调性二分查找,优化到O(nlogn) 。关于优化详见优化章。
一些问题可将数据有序化,转化成本题。
应用:
拦截导弹(NOIP99 Advance 1) 就是原题。
Beautiful People (sgu199),要将数据有序化:其中一个权作为第一关键字不下降排
列,另一个权作为第二关键字不上升。
Segment (ural 1078),将线段的左端点有序化就可以了。
b) LCS
状态(i,j),表示第1 个字符串的第i 位,与第2 个字符串的第j 位匹配,得到的最长
的串。若有多个串要LCS ,则加维,即几个串就几个维。我也将此题归入路径问题。
c) 花店橱窗布置(IOI99)
见路径问题。
1.2. 区间动态规划
共性总结
本类问题与下一章的划分问题的决策的分割点无序交集比较大(占本类问题的30% )。
题库
a) 石子合并
见划分问题
第 1 页 共 8 页 1
[ADN.cn][Library]Summary 动态规划总结 by Amber
b) 模版匹配(CEOI01,Patten)
这题特殊的地方是状态的值是一个集合而不是一个数。
c) 不可分解的编码(ACM World Final 2002)
d) Electric Path(ural1143)
e) 邮局(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 到原点的距离。
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 是下取整。Ceil 是上取整。这样每次转
移时间降到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)
决策数量又少了一个数量级。
文档评论(0)