整理原因:由于高中参加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,参考题解