
树形DP
Fool-Fish
这个作者很懒,什么都没留下…
展开
-
【题解】求树的直径
问题描述给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和。树中最远的两个节点(两个节点肯定都是叶子节点)之间的距离被称为树的直径,连接这两点的路径被称为树的最长链。后者通常也可称为直径。算法:不妨设1号节点为根,“N个节点,N-1条边的无向图”就可以看作“有根树”。设d[x]表示从节点x出发走向以x为根的子树,能够到达最远节点的距离。设x的子节点为y1,y2,……,yt,edge(x, y)表示边权,显然有:d[x] = max{d[yi] + edge(x, y原创 2020-10-04 14:47:08 · 586 阅读 · 0 评论 -
【题解】求树的重心
定义树的重心定义为,当把节点x去掉后,其最大子树的节点个数最少(或者说成最大连通块的节点数最少),那么节点x就是树的重心。通俗的理解:这个点去掉后,剩下的联通块尽量平均算法:树上任选一结点 uuu 开始 DFS,沿路统计其所有子树的大小和以它为根的子树的大小,这样也就可以得到一个点所有子树的大小及的大小还有一个问题,如果这个点不是根节点,那么删掉后剩下的连通块不止有他的子树,还有他上面的部分,这部分可以由总结点减去他自己的子树大小得到我们知道一个性质:删除重心后所得的所有子树,节点数不超过原树的原创 2020-10-04 14:44:56 · 1951 阅读 · 3 评论 -
【题解】没有上司的晚会
题目题目描述某大学有 nnn 个职员,编号为 1…n1\ldots n1…n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数rir_iri ,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。输入格式输入的第一行是一个整数 nnn。第 222 到第 (n+1)(n + 1)(n+1原创 2020-10-04 14:42:08 · 342 阅读 · 0 评论 -
【总结】树形DP
树形DP、最大独立子集、树的重心、树的直径、经典例题原创 2020-10-04 14:29:39 · 239 阅读 · 0 评论