我的DP训练情结(starting...)

来源:互联网 发布:知乎回答的问题很绕 编辑:程序博客网 时间:2024/04/27 21:33

整理原因:由于高中参加Noip时,主要做的题目都是些DP,搜索,还有一堆杂题,自从开始ACM生涯之后,发现不会的算法太多,于是专攻算法,然后就悲剧的发现,做题能力大大降低,我想没有练习这些DP,搜索还是不行的,从现在开始从新加强DP与搜索。。。从头开始,因为忘得太透彻了= =,纯属酱油,供雷同者参考。。。

目的:        供自己全面复习,给后来者作为参照

内容:        不具体讨论DP的一些解法,只提供类型对应的题目,简要题解,代码,供各路神牛小菜鄙视= =

时间:         2011.9.28 20:22——??持续整理中。。。

期待大家来围观,帮忙指正错误。。。。


A.各种背包,就根据背包九讲的内容来做吧!

——不会背包的可以边看背包九讲边练习微笑

============================================================================

01背包:

============================================================================

poj 3624 Charm Bracelet

01背包入门题(背包不用装满),整个数组赋值为0参考题解

poj 3628 Bookshelf 2

01背包入门(背包必须装满),只有f[0]赋值为可行,参考题解

poj 3211 Washing Clothes

这题的模型其实很明显,稍微转化就是01背包了,参考题解

poj 1745 Divisibility

01背包的拓展训练,参考题解

poj 1976 A Mini Locomotive

这题有多种做法,貌似01背包还不错,参考题解

poj 2923 Relocation

状态压缩+01背包,这题用到状态压缩,还有两次背包,是个不错的题,参考题解

poj 1837 Balance

这题也算是01背包常见的类形题吧,参考题解

poj 1948 Triangular Pastures

二维01背包,01背包拓展,参考题解


=============================================================================

完全背包:

=============================================================================

poj 2063&zoj 2224 Investment

完全背包,这题其实就是多次的完全背包,参考题解

poj 1384&Zoj 2014 Piggy-Bank

完全背包入门题,这题要求刚好装满,参考题解

poj 1252 Euro Efficiency

这题可以用完全背包,还是比较有意思的模型,参考题解

完全背包好题没找到阿...= =


=============================================================================

多重背包:

=============================================================================

Zoj 1149 & poj 1014 Dividing

多重背包+倍增思想优化入门题,参考题解

poj 2392 Space Elevator

这题是普通的多重背包,就是得先排序,参考题解

poj 1276 Cash Machine

多重背包+倍增优化,已经会了就没多大意义,参考题解

poj 1742 Coins

多重背包可行性问题,楼大叔的题= =,参考题解

poj 3260 The Fewest Coins

多重背包+完全背包,参考题解

hdu 1171 Big Event in HDU

多重背包可行性,已经会的就不用做了,参考题解

zoj 2156 Charlie's Change

多重背包+倍增优化+记录路径,不会记录路径的可以做一下,参考题解

Zoj 3164 Cookie Choice (新增了队列优化和泛化物品的合并

多重背包+分组背包,比较复杂的一道题,参考题解

之前一直以为只有多重背包的可行性问题才有O(NV)的算法,现在发现我错了,还有解决一般多重背包的单调队列优化,

复杂度也是O(NV),详细请看09年IOI国家队论文 徐持衡 《浅谈几类背包题》

=============================================================================
分组背包:
=============================================================================

hdu 1712 ACboy needs your help

分组背包入门题,参考题解

hdu 3033 I love sneakers!

分组背包,每组至少取1个,参考题解

hdu 3496 Watch The Movie

普通的二维背包,参考题解

hdu 3535 AreYouBusy

各种分组背包,挺全的一道题,参考题解


=============================================================================

背包的一些变形:

=============================================================================

poj 3093 Margaritas on the River Walk

01背包统计方案数,参考题解


B. 树型DP

=============================================================================

树上的背包

=============================================================================

bsoj 1660 选课

比较经典的一道题,参考题解

bsoj 1512 金明的预算方案

树型DP,跟上面那道类似,不过需要优化,参考题解

============================================================================

统计答案:

============================================================================

hdu 4303 Hourai Jeweled

树型DP+统计答案,参考题解



C.最长递增子序列

============================================================================

最长递增子序列变形:

============================================================================

CF 76F Tourist

最长不递减子序列变形,参考题解


D.区间DP

============================================================================

简单的区间DP:

============================================================================

Lightoj 1422 Halloween Costumes

区间DP,得转一下模型,参考题解


vijos 1069 新年趣事之红包

区间DP,思路还是不错的,参考题解



E.最大子矩形

奶牛浴场糖果盒

经典的题目,参考模版


hdu 4328 Cut the cake

最大子矩阵的应用,参考题解


最近在学习DP的优化,所以先整理这块了,其他的等有空再补上吧

G. DP的优化

参考傻崽大牛的这篇

=============================================================================

纯单调队列:

=============================================================================

FZU 1894 志愿者选拔

单调队列的入门题吧,理解了单调队列就没问题了,参考题解

poj 2823 Sliding Window

同上题,参考题解

hdu 3415 Max Sum of Max-K-sub-sequence

环处理,和区间和处理,基本同上题,参考题解


=============================================================================

DP+单调队列:

=============================================================================

hdu 3401 Trade

DP+单调队列优化,单调队列需要转换,参考题解

hdu 3530 Subsequence

DP+单调队列优化,这题需要维护两个队列,参考题解

NOI 2005 瑰丽华尔兹

矩阵里面的DP,其实也就是在二维DP里用单调队列优化,参考题解

poj 3017 Cut the Sequence

单调队列优化+平衡树,参考题解

poj 3245 Sequence Partitioning

二分+单调队列优化+平衡树,类似上题,参考题解


=============================================================================

DP+斜率优化:

=============================================================================


hdu 2993 MAX Average Problem

DP+斜率优化入门题,参考题解

bsoj 2684 锯木场选址

DP+斜率优化应用,主要是推公式,参考题解

bsoj 2430 HNOI2008 玩具装箱

DP+斜率优化应用,平方级的公式,化简后一样,参考题解

hdu 2829 Lawrence

二维DP+斜率优化,这题公式不是很明显,不过还是可以推出来的,也可以用四边形不等式,参考题解

hdu 3507 Print Article

DP+斜率优化,这题简单一点,参考题解

bsoj 2238 【NOI2007】货币兑换

DP+斜率优化+splay维护,比较麻烦的题目,参考题解


H.基于连通性的状态压缩DP(插头DP)

这个是经典题型了,首先当然是看看陈丹琦大神的论文,然后做做下面的习题,基本以后直接套模板

下面的题参考傻崽大神的

============================================================================

多条回路或简单插头DP的应用:

============================================================================

芯片制作

插头DP的一个应用吧,骨牌摆放方案,参考题解

hdu 4285 circuits

插头DP多条回路问题,回路不能互相包含,比较麻烦,参考题解



============================================================================

一条回路问题:

============================================================================

ural 1519

插头DP入门题,参考题解

usaco 5.4 Betsy's Tour

字面上像是一条路径问题,实际可以转换成一条回路,参考题解

zoj 3256  Tour in the Castle

与上题类似的转换,不过这题m比较大,需要矩阵连乘,参考题解

fzu 1977 Pandora adventure

插头DP一条回路的变形,涉及到格子的占用或不占用,参考题解


杂类:

vijos 1002 过河

一类压缩长度的DP,压缩状态相同的部分,从而优化时间复杂度,比较好玩的一题,参考题解

vijos 1014 旅行商简化版

多路DP,参考题解

原创粉丝点击