
图论——树上算法
文章平均质量分 75
dumeichen
这个作者很懒,什么都没留下…
展开
-
poj 1741(1987) 树分治(求距离小于某值的点对数)
题意:给定一棵带权无向树,并给定一个整数m。求树上点间最短路不大于m的点对数量。思路:比较明显的思路是用LCA来做,但问题是用LCA的话,当前问题的查询数量级为n^2,所以不管使用离线LCA还是在线LCA都逃不过O(n^2)的复杂度。经过学习知道了树分治这种东西。将无根树转化成有根树进行观察。满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中。如果我们已经知道了此时原创 2015-03-08 09:57:38 · 762 阅读 · 0 评论 -
poj 2763 lca(rmq)+树状数组(在一棵树上妈妈叫回家)
题意:给给定一棵含n个结点的树,树上的权值表示距离。共有q次操作,操作分为两种0 c :求从当前位置s到c的距离,然后当前位置变成c1 a b:把第a条边的权值变为b思路:树上的最短距离显然通过lca来求,而边权值会随时改变,所以求lca应该采用在线rmq方法。难点在如何更新,应用树状数组。可以深搜保存遍历该点的时间戳,s[i] 表示第一次遍历到该点的时间戳, t[i] 表示回溯到该点原创 2015-03-04 14:59:16 · 583 阅读 · 0 评论 -
poj 1655(3107、2378) 求树的重心
题意:求树的重心。树的重心定义为:原创 2014-08-08 12:44:46 · 566 阅读 · 0 评论 -
poj 1985 树的直径
题意:求树的直径。树的直径即树上距离最远的两个点之间的距离s原创 2014-07-14 21:30:40 · 687 阅读 · 0 评论 -
poj 1986 tarjan/rmq(LCA问题)
题意:给出一棵树,给出一组从原创 2014-07-18 14:39:17 · 564 阅读 · 0 评论 -
poj 1463 树形dp或者贪心(树的最小点覆盖)
题意:给定一棵树,选点最少的点原创 2014-08-23 19:36:37 · 918 阅读 · 0 评论 -
poj 1947 树形dp(得到含P个节点联通块的最小切边数)
题意:给定一颗树,通过删除边要得到一个hanyou原创 2014-08-24 20:48:31 · 924 阅读 · 0 评论 -
poj 2486 树形dp(吃苹果)
题意:给定一颗有n个顶点的树,每个点上有,求从1出发,走V步,最多能遍历到的权值原创 2014-08-28 22:00:05 · 551 阅读 · 0 评论 -
poj 1192 求树的最大权子树(树形dp)
题意:给定一棵树,每个节点都赋予一个权值,求原创 2014-08-25 16:59:46 · 1694 阅读 · 0 评论 -
poj 1155 树形dp(不亏损让尽量多居民看上电视)
题意:一个信号源,还有若干居民。原创 2014-08-27 19:24:11 · 478 阅读 · 0 评论 -
poj 2114 树分治(是否存在长度恰为k的路径)
题意:给定一棵树,随后给出不多于100个查询k,问树上是否存在恰等于k的路径。思路:对每一个k做一遍树分治,与1714的区别就是update函数的写法,此题要求的是路径距离恰等于k的条数。(其中判断条件j>i没加到时tle了两天,苦苦debug才AC)。#include #include #include #define clr(s,t) memset(s,t,sizeof(s))原创 2015-03-09 14:37:43 · 584 阅读 · 0 评论 -
poj 2342/3342 树上的带权最大独立集(不与上司去吃饭)
题意:举行宴会要邀请一批客人,所有可原创 2014-08-25 17:11:52 · 825 阅读 · 0 评论