版权声明:此文为作者原创,若觉得写得好请点个赞再离开。当然,也欢迎在讨论区指出本文的不足,作者会及时加以改正。转载请注明地址: https://blog.csdn.net/chenxiaoran666/article/details/82859031
前言
这东西真的是博大精深啊…
简介
树形 ,顾名思义,就是在树上操作的 ,一般可以用 表示以编号为 的节点为根的子树中的最优解。
转移的时候一般都将信息由子节点转移到父亲节点,也就是将信息从下往上转移。
因此,一般树形 都会采用 递归 的形式。
几道例题
好吧, 好像也没什么东西可讲,这样介绍得还是不够具体。干脆直接看例题来理解一下吧。
第一道例题: 【51nod1299】监狱逃离
这题是一道挺有意思的树形 题,我们可以考虑用 数组来记录每一个节点的状态:完全封死、可以从这个节点到达叶子节点、有犯人可以到达该节点,然后就不难统计出答案了。
第二道例题: 【BZOJ4033】[HAOI2015] 树上染色
比较经典的树形 题。这道题最值得注意的地方不是 过程,而是注意在一棵有 个节点的树上将 个节点染成黑色与将 个节点染成黑色其实是等价的,不加上这个优化就会 。
第三道例题: 【BZOJ1040】[ZJOI2008] 骑士
一道恶心的基环外向树 ,应该是比较模板的吧。
【51nod1299】监狱逃离 的题解 详见博客 【51nod1299】监狱逃离(树形DP)
【BZOJ4033】[HAOI2015] 树上染色 的题解 详见博客 【BZOJ4033】[HAOI2015] 树上染色(树形DP)
【BZOJ1040】[ZJOI2008] 骑士 的题解 详见博客 【BZOJ1040】[ZJOI2008] 骑士(基环外向树DP)