树形DP
通过对区间DP的学习,我们对树状DP有了一个初步的了解
给定一棵N个节点的树(通常是无根树,也就是有N-1无向边)我们任意选择一个点,为根节点,从而定义每个节点的深度和每一棵树,在树上设计DP算法的时候,一般都会用节点从深到浅的顺序表示DP的阶段,DP的状态表示中第一维表示节点编号,大多数的时候,我们采用递归的方式实现树形动态规划,先递归每一个子节点,回溯的时候从子节点想节点x进行状态转移
树形DP的状态图在一棵树上,状态转移也在树上
父节点通过子节点得到,一般在深搜的时候完成DP
模板
void dfs(int u)
{
for(int v=child[u];v<=u;v++)
{
dfs(v);
use f[v] update f[u]
}
}
699

被折叠的 条评论
为什么被折叠?



