树形dp
GocNeverGiveUp
这个作者很懒,什么都没留下…
展开
-
SDNUOJ 1482 节点选择(简单树形dp)
1482.结点选择想了解一下树形dp,可惜网上没有太好的入门教程,就从自己oj上发现了一道简单树形dp题,对着题解学习了一下这个dp就是dfs变形啊,暴力啊,将所有可能的情况都跑一遍,选择这一点或者不选择,但还是有些技巧可言,比如dp[i][0]和dp[i][1]分别表示选择和不选择该结点,省去了很多记录的麻烦,递归到最后终点就是max(dp[1][0], dp[1][1]),熟悉递归的过...原创 2018-07-30 19:58:31 · 161 阅读 · 0 评论 -
树形dp题目分类(开刷)
本文转自:http://blog.csdn.net/angon823/article/details/52334548介绍1、什么是树型动态规划 顾名思义,树型动态规划就是在“树”的数据结构上的动态规划,平时作的动态规划都是线性的或者是建立在图上的,线性的动态规划有二种方向既向前和向后,相应的线性的动态规划有二种方法既顺推与逆推,而树型动态规划是建立在树上的,所以也相应的有二个方向: ...转载 2018-07-30 20:26:04 · 1143 阅读 · 0 评论 -
HDU 2196 Computer(树的最长路径/树的直径)
刚学树形dp的时候人家给这道题的定义是--简单题,当时心态就崩了,学完紫书上的另外两个分支之后回过头来看,发现也不是无从下手,思路问题,跑两种dfs,这个网络上有,思路写的十分清晰,但是代码看不明白,所以就跑去找kuangbin的模板,写的真好啊,一看就明白了!思路:记录每一个树到子树的最长路径和次长路径,其中次长路径是通过和最长路径的不断更替得到的(这里kuangbin写的真的好,学到了),...原创 2018-08-05 19:36:21 · 315 阅读 · 0 评论 -
HDU 1520 Anniversary party(简单树形dp)
做刚过类似的但是一直wa,为啥啊,网搜题解多了一个n != 0的判断就ac了,可是题干里好像没说啊。。。思路是利用数组找到根节点,然后dfs跑递归HDU - 1520#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<...原创 2018-08-01 09:55:11 · 123 阅读 · 0 评论 -
POJ 1655 Balancing Act/ POJ 3107 Godfather(树形dp学习篇:树的重心)
POJ - 1655接触到了一个新的名词:树的重心,百度百科给出的定义 : 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。紫书上差不多也是这样介绍的,很好理解的概念,这道题就是求树的重心的裸题,给定一颗无根树,将每一个点都设置为根,跑一下dfs,更新自己最大的子数具有的节点数(假定生成的子树中还包含祖先...原创 2018-08-02 15:24:28 · 190 阅读 · 0 评论 -
树形dp总结
这个总结是基于《算法竞赛入门经典(第2版)》的思路进行的总结树上的动态规划(树形dp)大致分为三类1.最大独立集2.树的重心(质心)3.树的最长路径(最远点对)这三个是最基础的入门级题目,真正的树形dp是有很多节点关系需要处理的,先把基础思路捋清 1. 树的最大独立集定义 : 对于一颗n个节点的无根树,给出n-1条遍,选出尽量多的节点,使得任何两个节点均不相邻。输出...原创 2018-08-08 10:41:14 · 365 阅读 · 0 评论 -
codeforces 1083 A. The Fair Nut and the Best Path(树形dp)(第一道div1题)(*1800)
https://codeforces.com/contest/1083/problem/A题意:每个节点都有自己的价值,从一个节点走到另一个节点会消耗固定值,但也会得到这个节点的价值,问怎样走才能得到最大的价值。思路:利用树形结构进行dp,初始化每个点的价值为自身价值,对于每个节点都判断更新它的值或者不更新,从底向上进行dfs递归,更新出最优ans,从一个节点到另一个节点的收益为(目标节点...原创 2018-12-12 19:16:41 · 856 阅读 · 0 评论