树形DP
liusu201601
这个作者很懒,什么都没留下…
展开
-
luogu2016:战略游戏:求最大独立集(板子)
题目连接 树形DP专题 题目大意 给出一棵树,每个守卫可以瞭望相邻的点; 问,最少需要多少个守卫,可以瞭望全图。 题目分析 瞭望:其实是希望用最少的点,覆盖长度范围为1的图。 所以是经典的“最小点覆盖”问题,在树上也叫“最大独立集”问题; 因为是板子,所以肯定很简单,直接上代码,相信应该问题不大。 解题流程 略 参考代码 //1.3-luogu2016-战略游戏 //最小点...原创 2020-01-06 08:47:01 · 287 阅读 · 0 评论 -
loj10155:数字转换:树的直径问题
题目连接 树形DP专题 题目大意 一个数字n,求n以内的数字之间 “约数和关系” 的最长链; 约数和关系:一个数字 xxx 的约数和为 s[x]s[x]s[x] ; 题目分析 由 约数和关系 可以想到,如果 s[x]<xs[x]<xs[x]<x ,他们之间可以连一条双向边;题目就转换为了一个树上,求直径。 直径的定义: 树上最长的链。 求树的直径的方法1:用两次df...原创 2019-12-25 10:45:58 · 266 阅读 · 1 评论 -
hdu3534:tree:树的直径问题(dp求解)
题目连接 树形DP专题 题目大意 给出一棵带边权的树; 问1:求出树的直径; 问2:有多少对点的距离等于树的直径。 题目分析 直径的定义: 树上最长的链(可能有多条)。 求树的直径的方法1:用两次dfs来完成 dfs1从根出发,找到最远的叶子结点 kkk; dfs2以 kkk 为根,出发,找到离他最远的点 ttt , kkk 与 ttt 之间的距离就是直径。 求直径的做法2:dp的思...原创 2019-12-24 09:19:50 · 460 阅读 · 0 评论 -
luogu1352:没有上司的舞会
题目连接 树形DP专题 题目大意 给出一棵带权值的树; 如果父亲出席,则儿子们都不出席舞会; 如果父亲不出席,儿子们可以选择出席与否; 求最大的权值和。 题目分析 f[x][1]f[x][1]f[x][1] 表示 xxx 会出席晚会,所以他的儿子都不出席,取和: f[x][1]=∑y∈son[x]f[y][0]f[x][1] = \sum_{y \in son[x]}^{} f[y...原创 2019-12-23 11:56:49 · 150 阅读 · 0 评论 -
luogu1122:最大子树和
题目连接 树形DP专题 题目大意 知道一棵树,每个点有权重; 删掉任意个点,保留以1为根的子树; 使得权值和最大。 题目分析 树形DP的入门题,考核树上的递归更新。 解题思路 一个dfs完成 参考代码 //luogu1122-最大子树和 #include<bits/stdc++.h> using namespace std; const int N=20000;...原创 2019-12-23 09:56:39 · 232 阅读 · 0 评论