欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF274B(树形DP+深度优先遍历)

2022-09-06 16:12 作者:Clayton_Zhou  | 我要投稿

 https://codeforces.com/problemset/problem/274/B


题意:

已知一棵树,树上每个节点都有一个值,可以

1.每次选择树上包含节点1(根节点)的一个子树;

2.每次选择的子树进行所有节点值+1或-1的操作,

问要使所有节点的值都变为0,最少需要多少次操作?


题解:

树形DP + 深度优先遍历,

对于一个节点来说所需要的操作步数,就是increase操作和decrease操作的和. 

可以设dp[u][0]表示increase操作的步数,dp[u][1]表示decrease操作的步数,

这样就可以进行转移了.

对于每个节点,先求出其所有儿子节点的dp,就可以推算出使它变成0最少需要增加多少次,减少多少次,即可完成状态转移。



CF竞赛题目讲解_CF274B(树形DP+深度优先遍历)的评论 (共 条)

分享到微博请遵守国家法律