动态规划dp

普通dp

CF1140E Palindrome-less Arrays 题解

ZJOI2013 话旧 代码 细节题,烦。

分组背包

CF1354E Graph Coloring 代码 二分图+分组背包。

前缀和优化

APIO2016 划艇 代码
(f_{i,t}) 表示第 (i) 学校第 (t) 区间数只船。隔板法+前缀和转移(滚动数组实现前缀和)。

[f_{i,t}=f_{i,t-1}+sum_{j=1}^{i-1}f_{j,t-1}cdot inom{in}{len+in-1}\left(a_ile t& t<b_i,in=sum_{k=j+1}^i[a_kle t& t<b_k],len=d_{t+1}-d_t ight) ]

CF1295F Good Contest 代码
与上题类似,严格选取并且倒着枚举时间即可。

树形dp

NOI2002 贪吃的九头龙 代码 结论+( t dp)

CF1073F Choosing Two Paths 代码
找到能作为重合点的最长链,以及端点子树的最长链和次长链,两次 ( t Dfs+dp) 搞定。很毒瘤。

JSOI2016 最佳团体 代码
分数规划。 树形背包,要注意循环次序。

FJOI2014 树的重心 题解
做很多次树形 ( t dp),细节较多,涉及树的重心性质。

状压dp

洛谷P4854 MloVtry的咸鱼树 代码
题意难懂而已。把集合状压一下然后 ( t dp) 就好了。

斜率优化

APIO2014 序列分割 题解

SDOI2016 征途 题解

ZJOI2007 仓库建设 笔记

APIO2010 特别行动队 笔记

JSOI2011 柠檬 笔记

SDOI2012 任务安排 笔记

CF311B Cats Transport 题解

CEOI2017 Building Bridges 题解

数位dp

小蒟蒻很久以前写的数位dp讲解

UVA11361 Investigating Div-Sum Property 代码 结论+模板

SP10606 BALNUM - Balanced Numbers 代码
状压每个数字三种状态:不选,奇数个,偶数个。套个板即可。

洛谷P4317 花神的数论题 代码
数位dp套个板,除了加分变乘法还有要取模。

矩阵快速幂优化

NOI Online 魔法值 代码 倍增+矩幂(可以 ( t bitset) 优化)。

概率dp

POJ2096 Collecting Bugs 代码 推式并 ( t dp)

洛谷P4316 绿豆蛙的归宿 代码 ( t DAG) 概率 ( t dp)

NOIp提高 换教室 代码 ( t Floyd)+概率 ( t dp),状态设计是难点。

CF643E Bear and Destroying Subtrees 笔记
套路地精度忽略优化,( t dp) 方程稍微有点难设计。

SCOI2008 奖励关 代码
状压概率dp,很难想。逆枚举,把前一维当作固定,这一位每种情况当作独立。

数据结构优化dp

CF1389F Bicolored Segments 题解
线段树优化dp,也可以贪心加对抗挑选。

dp套dp

TJOI2018 游园会 代码
先预处理dp,差分滚动,dp出正式dp时的转移方法,然后正式dp,统计答案。

Magic 代码
同上,要交换枚举顺序优化,内部dp推导:image.png

原文地址:https://www.cnblogs.com/Wendigo/p/12918834.html