LCA(最近公共祖先).....可惜我只会用tarjan去做 真心感觉tarjan算法要比倍增算法要好理解的多,可能是我脑子笨吧略略略 最近公共祖先概念:在一棵无环的树上寻找两个点在这棵树上深度最大的公共的祖先节点,也就是离这两个点最近的祖先节点。 最近公共祖先的应用:求解两个有且仅有一条确定的最短 ...
分类:
编程语言 时间:
2018-09-25 23:02:47
阅读次数:
206
传送门 肯定是最短路 而且题目有限制,不存在负环 所以可以跑堆优化的Dijkstra 但是因为有负边权,所以跑得很慢 这时可以利用题目的条件 每个联通块内是没有负边权的 所以可以优先处理单个块之内的最短路 这样一个块一个块地处理 可以跑得很快 可以用Tarjan处理每个点所在的联通块 代码: 后话: ...
分类:
其他好文 时间:
2018-09-25 14:06:07
阅读次数:
199
【UOJ 67】新年的毒瘤(Tarjan) 题面 "UOJ" 题解 一棵$n$个节点的树显然有$n 1$条边,在本题中意味着删去一个点之后还剩下$n 2$条边。那么找到所有度数为$m (n 2)$的点就好了。但是因为是一棵树,所以联通,所以割点不是答案。 cpp include include us ...
分类:
其他好文 时间:
2018-09-25 12:45:30
阅读次数:
116
根据 李煜东大牛:图连通性若干拓展问题探讨 ppt学习。 有割点不一定有割边,有割边不一定有割点。 理解low[u]的定义很重要。 1.无向图求割点、点双联通分量: 如果对一条边(x,y),如果low[y]>=dfn[x],表示搜索树中y为根的子树必须要通过x才能到达树的上端,则x必为割点。 x属于 ...
分类:
其他好文 时间:
2018-09-25 12:43:12
阅读次数:
207
Heavy Light Decomposition & Tarjan Description Given a simple connected graph. It is guaranteed that any set of points in a simple cycle includes a co ...
分类:
其他好文 时间:
2018-09-24 12:46:01
阅读次数:
186
传送门:Problem 2370 https://www.cnblogs.com/violet-acmer/p/9686774.html AC代码: Tarjan+LCA: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 # ...
分类:
其他好文 时间:
2018-09-24 11:36:26
阅读次数:
174
P3627 [APIO2009]抢掠计划 Tarjan缩点+最短(最长)路 显然的缩点...... 在缩点时,顺便维护每个强连通分量的总权值 缩完点按照惯例建个新图 然后跑一遍spfa最长路,枚举每个有酒吧的点即可 (但是我为什么会搞dp呢.......) dp:81pts (这么显然的最长路,为什 ...
没看太懂题意orz 最优的是tarjan缩点之后问入度为0的点,因为问这个点可以知道整个块的情况 答案是这ans个入度为0的点都不是杀手的概率\\( \frac{n ans}{n} \\) 但是有特殊情况就是size为1的单独scc,这是ans ,因为其他点确定之后这个点就确定了 cpp inclu ...
分类:
其他好文 时间:
2018-09-22 19:53:48
阅读次数:
153
LCA的Tarjan算法是一个离线算法,复杂度$O(n+q)$。 我们知道Dfs搜索树时会形成一个搜索栈。搜索栈顶节点cur时,对于另外一个节点v,它们的LCA便是v到根节点的路径与搜索栈开始分叉的那个节点lca。而站在cur上枚举v找lca的过程可以用并查集优化到$O(\log n)$级别。 并查 ...
分类:
其他好文 时间:
2018-09-22 18:21:03
阅读次数:
175
tarjan缩点+最短路 这道题我想了一半的正解,就是缩点+DAG上考虑,之后图只有一种情况:1号点连着大量的点,大量的点连着1号点,部分能到达1号点的点连接着1号点能到达的部分点。转向就是要从1号点能到达的点过渡到能到达1号点的点。考虑spfa,在缩完点后的图上从1号点正向跑最大路,再建立一个反图 ...
分类:
其他好文 时间:
2018-09-21 23:10:28
阅读次数:
157