树形DP
Winterfell30
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDOJ 2196 Computer (经典题)
题意有一个树,每条边都有权值,求每一个点出发的链的最大权值和。思路很经典的树形dp题目,和树的直径的性质相关。 从任意点出发能到达的最远的点一定是直径的一个端点,然后再从这个端点出发能到达的最远的点就是另一个断点,中间的边就是这个树的直径。 我们用两个dfs,第一次维护一个点到他的子树的最长路,第二次用来更新结果。比如u点的最长路,要么从他到他的子树叶节点,要么是从u到达根节点加上根节点到距离根原创 2016-05-26 20:24:14 · 553 阅读 · 0 评论 -
POJ 1155 TELE (树形背包)
题意1为根节点,有m个叶节点,其他为中间结点,每个结点的权值代表他愿意付出的钱,边的权值代表联通两节点的代价,求不亏损的情况下最多能到达多少个叶节点。思路另dp[u][i]表示根节点为u的子树此时装了i个叶节点的盈利情况(∑moneyi−∑Edgecosti\sum money_i - \sum Edgecost_i) 那么我们就能得到这样的状态转移方程: 如果u是叶节点dp[u][1]=1dp原创 2016-05-27 00:41:33 · 573 阅读 · 0 评论 -
Codeforces 686 D Kay and Snowflake (树重心)
题意给出n个节点的树和q个查询(范围均为3e5),对每个查询输出x为根节点的子树的重心。思路树的重心有几个很好用的性质,下文参考这里 1.树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么他们的距离和一样。 2.把两个树通过一条边相连得到一个新的树,那么新的树的重心在连接原来两个树的重心的路径上。 3.把一个树添加或删除一个叶子,那么它的重心最多只移动一条边的距离。原创 2016-06-27 23:17:06 · 1075 阅读 · 0 评论
分享