树形DP
树形DP
_7许
%
展开
-
树上子链【树形DP】
树上子链 备注:一个结点,也可以称作一条链 题意: 在一棵树上,找打结点权值和最大的子链。 思路: 将无根树转换为有根树,任意结点为根 在有根树上,设fir[ u ]为在结点u这颗子树上,包含结点u的权值和最大的子链。 同样地,设sec[ u ]为在结点u这颗子树上,包含结点u的权值和第二大的子链。 可以得到dp方程: 注意: ans初始化为负无穷,结点权值是有赋值的嘛 an...原创 2020-02-23 15:45:42 · 358 阅读 · 0 评论 -
【树形DP_树的直径】HDU 4607 Park Visit
HDU 4607 Park Visit 题意:一个有N个结点的无根树,我们要访问K个点,问最小路径是多少。 解:我们设树的直径是dia,直径上经过的结点个数为num 当K <= num时,ans = K-1. (从直径的一端沿着直径走) others,ans = dia + (K - num) * 2(直径一定是走完的,还要走直径的分支,并且分支是走重复的,也就是两倍) ...原创 2020-01-08 22:22:07 · 370 阅读 · 0 评论 -
【树形DP_树的直径】HDU 2196 Computer
HDU 2196 Computer 题意:给一棵树,求每个结点的最大距离(从该结点到达所有叶子结点中的最大距离)并输出。题目要求输入真的很迷,每一行(从2开始)代表的结点u和输入结点v之间的边的权值是w。嗐,真的迷。读了好久才读懂。QAQ 【今天才知道原来以下做法是求树的直径的做法,first[x] + upp[x]的最大值就是树的直径】 思路:我们任取一个结点作为根结点,将无根树转...原创 2020-01-07 19:55:02 · 270 阅读 · 0 评论 -
【树形DP-最大独立集】HDU 1520 Anniversary party
HDU 1520 Anniversary party 题意:开大Party啦啦啦!但是主办方很人性,不让直属上下司同时出席。所以最多能有多少人出席呢?但是并不是问这个QAQ。每个人有自己的happiness值,问最大的happiness值是多少呢? 最大独立集 定义:一颗有N个结点的无根树,选出尽可能多的结点,使得任何两个结点均不相邻,那么这个点集就称为最大独立集。 如何求解呢? 我们任...原创 2020-01-07 11:55:21 · 167 阅读 · 0 评论 -
【树形DP-树的重心】POJ 3107 Godfather
POJ 3107 Godfather 题意:给出一个无向图(保证是树)【无根树】,求树的重心并输出 关于树的重心:该结点的子树中的最大结点数最小,则该结点是树的重心。也就是去掉重心后,剩余连通块中的最大连通块最小。 关于树的重心的几点性质: 一棵树最多有两个重心,且相邻。 把两棵树通过一条边相连,新的树的重心在原来两颗树重心的连线上。 树上所有点到某个点的距离和中,到重心的距离和是最...原创 2020-01-06 19:14:48 · 168 阅读 · 0 评论