树形dp
树形dp
策马奔腾向前冲
这个作者很懒,什么都没留下…
展开
-
(选课)背包类树形dp
选课学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了 N 门的选修课程,每个学生可选课程的数量 M 是给定的。学生选修了这 M 门课并考核通过就能获得相应的学分。在选修课程中,有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程的基础上才能选修。例如《Windows程序设计》必须在选修了《Windows操作基础》...原创 2019-10-26 09:19:12 · 310 阅读 · 0 评论 -
有依赖的背包问题(树形dp)
有依赖的背包问题有N个物品和一个容量是V的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是i,体积是vi,价值是wi,依赖的父节点编号是pi。物品的下标范围是1…N。求解将哪些物品装入背包,可使物品总体积...原创 2019-10-26 09:08:19 · 385 阅读 · 0 评论 -
1074. 二叉苹果树(有依赖的背包问题)
1074. 二叉苹果树有一棵二叉苹果树,如果树枝有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共N个节点,编号为1至N,树根编号一定为1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵苹果树的树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。这里的保留是指最终与1号点连通。输入格式第一行包含两个整数...原创 2019-11-02 00:21:28 · 306 阅读 · 0 评论 -
树的中心
树的中心给定一棵树,树中包含n个结点(编号1~n)和n−1条无向边,每条边都有一个权值。请你在树中找到一个点,使得该点到树中其他结点的最远距离最近。输入格式第一行包含整数n。接下来n−1行,每行包含三个整数ai,bi,ci,表示点ai和bi之间存在一条权值为ci的边。输出格式输出一个整数,表示所求点到树中其他结点的最远距离。数据范围1...原创 2019-11-01 13:40:06 · 2985 阅读 · 1 评论 -
树的最长路径
方法一:两次bfs先从任意一点P出发,找离它最远的点x,再从点x出发,找离它最远的点y,x到y的距离就是树的直径方法二:树形dp从某个点出发,求其最远距离与次远距离,两者之和最大的为树的直径例题:树的最长路径给定一棵树,树中包含n个结点(编号1~n)和 n−1条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得路径两端的点的...原创 2019-10-27 10:11:36 · 1451 阅读 · 0 评论 -
1075. 数字转换(树的最长路径 应用)
数字转换如果一个数x的约数之和y(不包括他本身)比他本身小,那么x可以变成y,y也可以变成x。例如,4可以变为3,1可以变为7。限定所有数字变换在不超过n的正整数范围内进行,求不断进行数字变换且不出现重复数字的最多变换步数。输入格式输入一个正整数n。输出格式输出不断进行数字变换且不出现重复数字的最多变换步数。数据范围1≤n≤5000...原创 2019-11-01 21:02:21 · 258 阅读 · 0 评论 -
树形dp(以边为单位)
下面是两道例题:设当前父节点为x,其子节点为y1,y2,...,yn《没有上司的舞y2会》:每条边上最多选择一个点,求最大权值状态转移方程:f[x,0]=max(f[y1,0],f[y1,1])+max(f[y2,0],f[y2,1])+...+max(f[yn,0],f[yn,1])f[x,1]=f[y1,0]+f[y2,0]+...+f[yn,0]《战略游戏》:每条边上...原创 2019-11-02 15:36:23 · 158 阅读 · 0 评论 -
树形dp(以点为单位)
这一题与《战略游戏》那道题还是有些不同的上一题状态设计为每个节点选或不选,在转移的时候每条边至少选一个就可以维护出当前子树中正确的选法中最小的本题就需要更为复杂的转移了,因为你不能通过当前父节点选或不选来判断出子节点选或不选,本题要求每个节点的 父节点,子节点,本身 中的一个节点被选,因此状态表示为 f[x][j]f[x][0] 第x个节点的父节点被选(当前点未选)f[x][...原创 2019-11-02 20:54:53 · 167 阅读 · 0 评论