DP训练笔记
与DP相识
中学的时候就对DP不是很感冒,还曾经记得初学递归我差不多没一会就理解了递归的原理,然而印象中动态规划有整整一年不得要领。现在还记得当时用Excel画出第一个01背包过程的喜悦激动,再就是一年后第一次在选拔赛上独立把动规动了起来的那次。虽说是道陈题而且我现场推出的方法不仅麻烦,复杂度还高了一两个数量级,但赛后我激动地跟同学介绍自己的思考经过,迫不及待地跟老师汇报成功的喜悦。(嗯,那时我还是个孩子
DP于我
当然,始终我都没有获得强大的DP能力,还记得有一次听THU的卞学长讲DP居然从头到尾也没有理解,后来当然DP也就会个皮毛,背背转移方程,应付应付背包。我以为,DP是算法竞赛中最优美的一部分,往往代码简洁,却能有四两拨千斤的效果,加上我长繁代码的功力不是很足,所以这一次希望能从头来过,把各种优化都了解清楚,锻炼一下思维(感觉最近很长一段时间做题都不带脑子,思考少了)。希望能有好的收获
AC!
A背包
这部分前一段时间跟着一个大牛的博客做了一些,暂且不补上来。
树型DP
选课
选课SJTUOJ
fi,j=Max(fi,a+fk,b),j=a+b
fi,j
表示以
i
为根的子树,选
无需建树的办法:选课_树型DP
类似于深搜,自顶向下,每次递归前将父亲
fr,j
传递给孩子,最后再向上推选出最优解