树形dp
一些树形dp的题
左佥都御史
这个作者很懒,什么都没留下…
展开
-
湘潭OJ-1267-树的直径-dp求法
http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1267 这道题卡了我小半个月,最后发现错误竟然是不能用lld,在湘潭oj只能用i64d。。55 不过收获也是蛮大的。 比较重要的地方 1 第一次dfs用后跟遍历,以求得到一条最长路。这时候求得是点为起点的时候的 最长路 2 第二次是求点为终点的时候的最长路。注意。在原创 2017-06-21 17:49:15 · 463 阅读 · 0 评论 -
POJ1655-树的重心&树形dp-Balancing Act
https://vjudge.net/problem/POJ-1655 给定m个点,和m-1个边,问你去掉一个点,使其最大子树最小,(即尽可能的平衡),输出那个点和最大的子树,如果有很多 点的最大子树 一样大, 那么就输出标号最小的。 这个带你就是树的重心啦hiahia 假设从1点开始dfs,在遍历黄色点的时候,子节点是两个红色的,得到的siz都是0,这俩点没有子树啊qwq,然后加1,所有原创 2017-08-07 13:18:43 · 261 阅读 · 0 评论 -
POJ3107-树的重心&树形DP-Godfather
https://vjudge.net/problem/POJ-3107 寻找一个点,删除之后,他的最大子树最小。其实就是树的重心。 如果有很多相同的,就按大小输出。 简单的树形DP应用。。求完所有树的重心之后处理,或者在dfs的过程中也能进行处理,都是可以的。 但那个要nlogn的排序,因为输出要顺序qwq#include <iostream>#include <stdio.h>#inc原创 2017-08-07 13:45:30 · 191 阅读 · 0 评论 -
POJ1741-树的分治&树的重心&树上的路径问题-Tree
https://vjudge.net/problem/POJ-1741 给定一个树,问你他们之间距离小于等于k的点对有多少个 1 可以理解为二分这个树,最后到只有一个顶点时结束,为了让其尽可能的快,所以取重心, 2 取到一个重心后,每个点到重心的距离,用一个On的双向搜索计算小于等于k的点对。但是可能会存在没有过这个点的点对,所以把所有距离都加上和 重心邻接的边,去掉那些不经过 当前重心的点。原创 2017-08-18 16:39:44 · 282 阅读 · 0 评论 -
hdu2196-树形dp|树的直径-Computer
http://acm.hdu.edu.cn/showproblem.php?pid=2196 给定一个网络,是一个图,求每个节点到最远节点的距离。。 1 树的直径。 即树上的最长简单路(最长的一条线)。然后求出直径的两个端点, 在计算的时候记忆化一下,保存一下他们距离 端点的距离。然后取最远的。( 1 先求出距离一个端点的距离,用直径直接减去是不行的,,因为有的点并不在树的直径上。。原创 2017-08-23 10:24:48 · 284 阅读 · 0 评论 -
Codeforces Round #419 (Div. 2)-树形dp&依赖背包&-E. Karen and Supermarket
http://codeforces.com/contest/816/problem/E 给定一个物品的 原价格 和现价格,问你如何买能让他在有限花费内物品最多。存在制约关系,比如买3必须买1。 树形dp。设置两种状态,一种是父节点用了打折卡。一种是父亲没有用打折卡。父亲用了二者卡,儿子不一定要用打折卡。(比方说这个打折卡就便宜了一毛钱,而加上那一毛就可以再买一个东西了) ※ 关键是 对树形背包原创 2017-09-06 13:52:21 · 264 阅读 · 0 评论 -
poj3140-树型dp&搜索-Contestants Division
https://vjudge.net/problem/17374/origin 给定一个树,问你抛去一个边,两边点权和的差最小是多少。。 好像树的重心。。开始想着枚举一遍和 重心相近的点,后来一看我去直接 枚举点 的两颗子树不就行了。。 wawawa。。 于是乎 想了好久。。原来求 反树的时候,,我用的m- siz[u].. 而其实应该计算 一下所有学生人数的(这是带权的,而不是求点的数...原创 2017-09-06 15:51:33 · 223 阅读 · 0 评论