摘要: 拓扑排序 只针对DAG排序 如果有环,序列长度不为$n$ 时间复杂度$O(n+m)$ 实现: 维护每个点入度,入度为$0$的入队,每次取队首遍历出边,入度$-1$,然后继续让入度为$0$的入队,直到队空 最长路 注意$vis$过$x$才能更新$y$ #include <queue> #include 阅读全文
posted @ 2020-08-26 22:02 ke_xin 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 树链剖分——轻重链剖分 blog https://blog.csdn.net/qq_40482358/article/details/89676297 把树上的问题转化成序列问题(然后就快乐线段树维护) 概括一下就是把树划分为若干条链,然后一个链的dfs序是连续的,对于树上两点,我们可以通过跳链直到 阅读全文
posted @ 2020-08-26 21:58 ke_xin 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 虚树,是对于一棵给定的节点数为 n的树 T,构造一棵新的树 T' 使得总结点数最小且包含指定的某几个节点和他们的LCA。 虚树是只包含关键点以及关键lca的点,而其他不影响虚树结构的点和边都相当于进行了路径压缩,整颗虚树的规模不会超过关键点数目的两倍. 虚树实际就是为了解决一类树形动态规划问题而诞生 阅读全文
posted @ 2020-08-26 15:55 ke_xin 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 树的直径 模板poj1985 树形dp **优点:**可以处理负边权的树 **缺点:**只能求一个树的直径的长度,其他的求不出 不妨设1号节点为根,将树看成有根树; 法1: \(d[x]\) 表示从$x$到以$x$为根的子树的最远距离 \(d[x]=max( d[y]+edge(x,y) );\) 阅读全文
posted @ 2020-08-26 11:30 ke_xin 阅读(55) 评论(0) 推荐(0) 编辑