ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【笔记】树形dp

2022-07-13 02:31:37  阅读:162  来源: 互联网

标签:10 结点 个点 笔记 树形 给定 权树 dp 每个


目录:

(一)简介

(二)例题

 

(一)简介:

(1)树是什么?

  树是⼀种⼗分优美的数据结构,因为它本身就具有的递归性,所 以树和⼦树之间能相互传递很多信息。

  树上的许多特征都可以通过它的⼦树的对应特征计算获得。

  所以树做动态规划求最优解和做统计非常⽅便。

(2)树的定义:

  n 个点,n-1 条边的⽆向连通图称为树。

(3)相关概念:

  结点?

  叶节点和分支节点?

  结点的度?结点的连边数

  树的度数?结点的度的最⼤值

  

  祖先和⼦孙?

  森林?

  结点深度,树⾼,⼦树⼤小?

 

(二)例题:

(1)给定⼀棵 n 个点的⽆权树,问树中每个⼦树的⼤小,每个节点的 深度? 其中 0 ≤ n ≤ 10^5

(2)给定⼀棵 n 个点的点权树,问树中每个⼦树的点权和,点权最⼤ 值? 其中 0 ≤ n ≤ 10^5

(3)给定⼀棵 n 个点的⽆权树,求树的重⼼?

  重⼼:删去该点之后,图中的所有连通块的最⼤尺⼨最小。 其中 0 ≤ n ≤ 10^5

(4)给定⼀棵 n 个点的边权树,问树中每个⼦树的最长链?次长链? 其中 0 ≤ n ≤ 10^5

(5)给定⼀棵 n 个点的边权树,对于树中每个节点 i,询问其到其它所有结点的距离和。 其中 0 ≤ n ≤ 10^5

(6)给定⼀棵 n 个点的边权树,求树的直径。 其中 0 ≤ n ≤ 10^5

  做法一:

    树的直径⼀定为某个点到其不同⼦树叶⼦的最长链 + 次长链

    暴力求解,从每个点开始遍历图,可以得到每个点v所在的最长路径max1和次长路径max2,注意的是最长路径和次长路径除了点v没有其他公共结点。

    时间复杂度为O ( n 2 ) O(n^2)O(n^2)

  做法二:

     选择⼀个点 X,求出其最远点 Y,再求 Y 的最远点 Z,则 YZ 为 直径

    (反证法:分X在直径UV上,和不在直径UV上两种情况)

    两遍DFS(或者BFS)就行

(7)给定⼀棵 n 个点的⽆权树,求其每个⼦树的重⼼。

  ⼦树重⼼定义为,删去该点之后,⼦树的所有连通块⼤小均不超过 n/2 其中 0 ≤ n ≤ 10^5

(8)没有上司的舞会:

(9)二叉苹果树

 

标签:10,结点,个点,笔记,树形,给定,权树,dp,每个
来源: https://www.cnblogs.com/xwww666666/p/16472401.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有