
tarajn
图论tarjan集
蒟->zhuqm<-蒻
这个作者很懒,什么都没留下…
展开
-
tarjan--点双连通分量
引入点双连通分量和边双连通分量差不多,但是要处理割点(割点可能被多个点双连通分量包含),割点不应该属于任何一个点双连通分量,所以割点的编号为-1。实现方法:1 tarjan求割点2 dfs求点双连通分量例题「BZOJ2730」矿场搭建分析...原创 2020-03-04 19:03:34 · 243 阅读 · 0 评论 -
tarjan--边双连通分量
引入所谓边双联通分量,其实有点像割边+强联通分量,做法是:1求出桥2dfs一遍,并且不经过桥,这样刚好把图分成了几个边双联通分量。例题 [USACO06JAN]冗余路径Redundant Paths分析我们先用tarjan求出边双连通分量,那么每个边双连通分量中任意两点一定不止一条路(没有桥),那么如果两个点不在同一个边双连通分量里呢?这时我们就需要建边了,而在哪个边双连通分量里...原创 2020-03-01 20:17:48 · 1071 阅读 · 0 评论 -
tarjan--割边
引入割边是指,在无向图中,去掉某一边,图不联通,那么这条边就是割边(或叫作桥)。还是用tarjan实现。例题旅游航道题目描述旅游局开设了在S星团的旅游业务。旅游线路四通八达,它们保证了任意两个星球可以通过航道到达。但是最近太空飞船有些老旧,财政也出现了困难,旅游局长决定停用一些航道。如果停用的航道使得一些星球不能到达,那么这条航道不能停用。现在航道太多了,局长想找你帮忙找出不能停用的航...原创 2020-03-01 19:27:48 · 266 阅读 · 0 评论 -
tarjan---割点
引入割点是指在无向图中,割去一个点,图不联通。这种问题仍然用tarjan解决。例题「POJ1144」Network分析割点裸题代码#include<bits/stdc++.h>using namespace std;#define N 105#define INF 0x3f3f3f3f int dfn[N],low[N],num,root,spot[N];in...原创 2020-02-29 22:41:08 · 110 阅读 · 0 评论 -
tarjan---强连通分量
引入给出一个图,有可能会有环,所以我们得把一个环缩成一个点,这时就可以用tarjan缩点。例题「USACO2003FALL」Popular Cows题目描述每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢...原创 2020-02-29 22:14:35 · 142 阅读 · 0 评论