0
点赞
收藏
分享

微信扫一扫

树形Dp入门与例题


树形dp
顾名思义
在树上dp
有人就说了
普通的dp都不会还让我在树上dp!!
可是
一般的树形dp没有别的dp水那么深
当然了
除了一些毒瘤题之外

树形dp一般是从下往上
也就是从叶节点到根节点
按这个顺序更新信息
因为叶节点的信息可以初始化
当然也会有从根节点向叶节点更新的
碰到这种题目再说

树形dp和递归分不开
这就需要掌握dfs的精髓
不大懂的话找个代码开调试看下它怎么跑的就好了
我个人一般建无向图
dfs的时候记录下前驱就好
有向图也没有关系
因为一般是从下往上遍历的

至于树形背包
树形背包==分组背包
做题多了见过的模型多了就看得出来了
下面的选课比较经典,入门题

例题

​​Luogu 1352 没有上司的舞会​​​​HDU 1520 Anniversary party​​ 这两个是一道题着
只是下面那个多组数据
题目中还没说清楚
好坑我

这是最基础的一类树形dp
选了父亲节点就不能选儿子节点
也就是相邻的两个点不能同时选
方程很简单



为当前节点,为遍历到的节点

第一个方程就是儿子选不选都可以
第二个方程是儿子不能选,因为当前节点已经选了

进阶版

​​Luogu 2607 骑士​​​ 这题在上一个方程的基础上加了点东西
基环树与删边
当然主要是拼脑子
具体来这看,挺详细的了——​​点这里​​

换换类型

​​Luogu 2014 选课​​​ 每个节点只有在选了它的父节点之后才能选
题解——​​点这里​​​​Luogu 2015 二叉苹果树​​ 要删去条边,要使剩下的节点权值最大
题解——​​点这里​​

​​Luogu 1273 有线电视网​​​ 题面好难说啊自己看去吧( • ̀ω•́ )✧
题解——​​点这里​​

最小点覆盖问题

每个点能覆盖附近的两条边,用最少的点把这张图覆盖起来
​​​Luogu 2016 战略游戏​​​ 诶,
这个好像才是入门的
麻烦不改了
如果当前节点不放置士兵,那么它的子节点必须全部放置士兵
如果当前节点放置士兵,它的子节点选不选就无所谓了

//当前节点不放

和第一种类型是不是有点像
​​​双倍经验​​

​​CF 767C Garland(洛谷)​​​ 给出一颗树,问能否删除两条边使这三部分的点权和相等
题解——​​点这里​​

​​HDU 2196 Computer​​​ 求树上每个点能走的最长路
​​HDU 4514 湫湫系列故事——设计风景线​​ 这俩题基本一样
第一个题解——​​点这里​​ 第二个题解——​​点这里​​

先这样
有东西再更( ̄▽ ̄)/


举报

相关推荐

树形 DP

树形DP.

树形dp总结

树形dp 笔记

树形DP练习

树形DP专题

Weight the Tree(树形dp)

0 条评论