树形DP
做一只大熊猫
让优秀成为一种习惯!
展开
-
G - Computer HDU - 2196(树形 DP+dp 预处理)
第二遍做这一题了,很经典,附上一张盗来的图,思路首先用一个 dfs 去预处理每个节点 x,到以 x 为根的子树的叶子节点的最大、最小值,就是求树的直径的时候的那个 dp 求法,并且标记最大最小值的分别经过的事 x 的那个子节点,然后再用另一个 DFS 函数去以当前点 x 为起点所能走的最长路径,如下图,如果 x=2 的时候我们可在这个树分成两部分,第一部分是以 x 为子树的那一部分,即蓝色圈着的部分,另一部分是剩余的部分,即红色线圈着的部分。这两部分都有可能产生最大值,蓝色部分产色的最大值,可以通原创 2021-03-06 21:50:37 · 162 阅读 · 0 评论 -
1579: 【例 5】皇宫看守(最小支配集——贪心求解/树形DP)
【题目描述】太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。【输入】输入中数据描述一棵树,描述如下:第一行n,表示树中结点的数目。第二行至第n+1行,每行描述每个宫殿结点信息,依次为:原创 2020-10-11 11:56:02 · 1222 阅读 · 0 评论 -
1578:【例 4】战略游戏(最小点覆盖 树形DP)
【题目描述】 Bob 喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的方法。现在他有个问题现在他有座古城堡,古城堡的路形成一棵树。他要在这棵树的节点上放置最少数目的士兵,使得这些士兵能够瞭望到所有的路。注意:某个士兵在一个节点上时,与该节点相连的所有边都将能被瞭望到。 请你编一个程序,给定一棵树,帮 Bob 计算出他最少要放置的士兵数。【输入】 输入数据表示一棵树,描述如下 第一行一个数 N, 表示树中节点的数目。第二到第 N+1 行,每行描述每个节点信息,依次为该节点编号 i, .原创 2020-10-11 11:09:36 · 809 阅读 · 0 评论 -
1577:【例 3】数字转换(求树的直径——两遍dfs找树的直径的端的/树形DP求解)
1577:【例 3】数字转换问题描述如果一个数 x 的约数和 y (不包括他本身)比他本身小,那么 x 可以变成 y,y 也可以变成 x。例如 4 可以变为 3,1 可以变为 7。限定所有数字变换在不超过 n 的正整数范围内进行,求不断进行数字变换且不出现重复数字的最多变换步数。思路题意:x所有约数的和为y,那么x就可以和y互相转化(在x<y的前提下),首先我们预处理1~n中的每个数字x,可以转化为那个数y,我们在x与y之间建立一条边,这样预处理完之后,形成以1为根节点的一颗树,题目就.原创 2020-10-11 10:56:41 · 695 阅读 · 3 评论 -
1576:【例 2】选课(树形DP)
问题描述原题来自:CTSC 1997大学实行学分制。每门课程都有一定的学分,学生只要选修了这门课并通过考核就能获得相应学分。学生最后的学分是他选修各门课的学分总和。每个学生都要选择规定数量的课程。有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程基础上才能选修。例如《数据结构》必须在选修了《高级语言程序设计》后才能选修。我们称《高级语言程序设计》是《数据结构》的先修课。每门课的直接先修课最多只有一门。两门课也可能存在相同的先修课。为便于表述,每门课都有一个课号,课号依次为 1.原创 2020-10-11 08:36:06 · 794 阅读 · 0 评论 -
1575:【例 1】二叉苹果树(树形DP)
1575:【例 1】二叉苹果树问题描述有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 N 个节点,标号 1 至 N,树根编号一定为 1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵有四根树枝的苹果树,因为树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。思路 分析这一题让我们 从一棵树中删除一些边,是剩余的边数为 m,其实就是从原来的那棵树上,删去一子树,使剩下的 m 条边的权值之和最大,.原创 2020-10-10 21:32:26 · 684 阅读 · 2 评论