摘要: 割边 割边同 "割点" 同理。 若一个点是割边,则他所连接的$dfn$值较大的点的$low$必然比他连接的另一个点的$dfs$小。 cpp include using namespace std; int head[100],next[100],to[100],cnt,num,n,m,dfn[100 阅读全文
posted @ 2018-11-01 16:21 Kylin_Seven 阅读(436) 评论(2) 推荐(0) 编辑
摘要: 割点 割点:若该点被去掉之后整个图由连通图变为非联通图,则该点为割点。 考虑什么时候一个点是割点。 同样使用$dfs$序。若在$dfs$树中,该点为根节点,且他有至少两个儿子,则他是割点;若他不是根节点,但他的儿子们能到达的$dfn$值最小的点的$dfn$值大于他的,则他是割点。 用强连通分量的思路 阅读全文
posted @ 2018-11-01 16:17 Kylin_Seven 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 缩点 "预备知识 强连通分量" 缩点就是在求完强连通分量后新建一个结构体,将每一个强连通分量看做一个新的点,建一个新的图。 "P3387" cpp include include using namespace std; long long read(){ long long x = 0; int 阅读全文
posted @ 2018-11-01 14:41 Kylin_Seven 阅读(327) 评论(0) 推荐(1) 编辑
摘要: 强连通分量 $Tarjan$ 强连通分量是神马东东?就是有向图中一群能相互到达的点。比如说这么一个图: 中间那个红色的就是强连通分量。 在很多题中,一个强连通分量可以看做一个点,但若直接跑最短路的话,成环显然不好处理,所以要先预处理将他们看成一个点。这是稍后的 "缩点" 。这里先讲怎么求强联通分量。 阅读全文
posted @ 2018-11-01 14:36 Kylin_Seven 阅读(363) 评论(0) 推荐(1) 编辑
摘要: "牛慢跑" 据说是$k$短路模板,要用$A^ $,然而我不会。我是用拓扑排序加堆优化广搜水过去的。第一道完全靠自己做出来的紫题,调了两个小时,交了两遍。果然我还是太菜了。 正解的话,可以看 "红太阳的博客" 题面 给出$n$个点$m$条边的有向无环图,求从$n$到$1$的前$k$条最短路的值。 $1 阅读全文
posted @ 2018-11-01 11:21 Kylin_Seven 阅读(200) 评论(0) 推荐(0) 编辑