树形dp总结

本次复习了一下树形dp,其中大部分的题目都与记录最长路径以及树上背包有关。个人感觉,做和树有关的动态规划的题目需要注意一下将原来的问题进行转化。

A. Starship Troopers

题意:m个士兵从1节点出发,每个节点消耗x个士兵得到w
题解:树上背包

B. Strategic Game

题意:求最小个数的点覆盖所有的边
题解:01树形动态规划
拓展:求最少的点覆盖所有点,大略想了一下大概需要三中状态

C. Anniversary party

题意:上司和下属不能同时存在,和上题有些相似
题解:01树形动规

D. Computer

题意:求每个点的最长路径
题解:首先dfs一遍每个点记录子树最长和次长路径并包含从哪个点修改得到的,然后在dfs一遍,每个点可以由父亲节点和子节点来更新,注意第二次dfs时先更新子节点的值再去搜索

E. The more, The Better

题意:同A题
题解:树上背包

F. Find Metal Mineral

题意:k个机器人去征服所有的点,求总的路径,可以回头,也可以到达叶子节点消失
题解:如果给子节点放入0个机器人那么它对答案的贡献是2*树枝边(因为还要回到根节点),如果放入x个节点那么它对答案贡献是x* 树枝边的长度,树上背包

H. Information Disturbing

题意:切断所有叶子节点和根的联系,代价是边的权值,现在有m的权值,求最少的切断边的上限
题解:二分,求所有儿子结点的贡献值然后再和父亲边作比较。

I. The Ghost Blows Light

题意:规定起点和终点以及时间,边有权值,点有物品价值求所能带走的最多的物品价值。
题解:最优的解法起点到终点的最短路径只是走了一遍,然后其他的走两遍。于是,先走一遍最短路径,将那些边全职赋值为0,然后减掉时间,接下去就是必须要回到终点的树上背包

J. Holiday’s Accommodation

题意:特别没意思,猜出来的题目,能想到就能做出来

K. Tree

题意:求最长路径以及最长路径的个数
题解:最长路径一共三种情况,最长链, 最长+最短链,最长链+最长链,对于每种情况,标记它的点,然后再来一次dfs

L. Terrorist’s destroy

题意:且断一条边代价为w,b = max(两个部分的最长路径),使得w*b最小
题解:第一次dfs对每个点,求最长路径,次长路径,三长路径,再求子树中最长和次长,第二次dfs注意状态的更新。

M. Y

题意:任一三点不在一条直线上,求有多少个这样的三元组
题解:分为子节点和出了子树外的节点,动态规划

N. Tree2cycle

题意:将一棵树断开再合并成环,合并和拆都算作一种操作,求最少的操作数
题解:待定

P. Balancing Act

题意:求树的重心
题解:直接求

你可能感兴趣的:(训练总结)