首先我们需要知道强连通分量,因为Tarjan就是用来求这个的。连通的意思是对于<u,v>,存在路径可以从其中一个达到另一个;强连通是指即存在从u到v的路径,又存在从v到u的路径。强连通是针对于有向图来说的,因为无向图只要做到了连通就做到了强连通。强连通分量就是指有向图的极大强连通子图,多一个点少一个 ...
分类:
编程语言 时间:
2018-09-15 20:48:17
阅读次数:
224
"题目传送门" 这个题其实就是tarjan缩点的板子题对吧....至少我是这么想的 首先这是个有向图,对于一个有向图,我们肯定要考虑环的存在与否,恰好这个题又是让我们找出最少的点,使得这几个点能够走遍全图 那么,显然,对于每一个强连通分量,我们看做一个点即可(因为强连通分量中每两个点之间一定能从一个 ...
分类:
其他好文 时间:
2018-09-14 20:33:46
阅读次数:
172
Description 给出一个有向图, 要求出至少从哪几个点出发, 能不漏地经过所有节点。 再求出至少加几条边, 才能使图变成一个强联通分量 Solution 求出所有强联通分量, 形成一个有向无环图, 第一问题就是求出有多少强联通分量的入度为 $0$ 第二个问题就是求出 入度为$0 $和 出度为 ...
分类:
其他好文 时间:
2018-09-11 21:06:17
阅读次数:
179
Description 给定$N$个点和 $M$条边的无向联通图, 有$Q$ 次操作, 连接两个点的边, 问每次操作后的图中有几个桥 Solution 首先Tarjan找出边双联通分量, 每个双联通分量缩成一个点, 就构成了一棵树, 每一条树边都是桥。 执行连$u, v$ 边时, 用并查集跳到没有桥 ...
分类:
Web程序 时间:
2018-09-11 13:56:38
阅读次数:
217
割点 什么是割点? 如果在一个图中,如果把一个点删除,那么这个图不再联通,那么这个点就是割点(割顶),当然是在无向图。 如何实现? 如果我们尝试删除每个点,并且判断这个图的联通性,那么复杂度会特别的高。所以要介绍一个常用的算法:$Tarjan$。 首先,我们上一个图: 很容易的看出割点是 2,而且这 ...
分类:
其他好文 时间:
2018-09-09 11:38:13
阅读次数:
1115
Tarjan 求强连通分量模板、参考博客 #include<stdio.h> #include<stack> #include<algorithm> using namespace std; const int maxn = 1e3 + 10; const int maxm = 330000 + 1 ...
分类:
其他好文 时间:
2018-09-08 11:47:23
阅读次数:
220
"题目链接" Solution 大概是个裸题. 可以考虑到,如果原图是一个有向无环图,那么其最大半联通子图就是最长的一条路. 于是直接 $Tarjan$ 缩完点之后跑拓扑序 DP就好了. 同时由于是拓扑序DP,要去掉所有的重边. Code cpp include define ll long lon ...
分类:
编程语言 时间:
2018-09-07 20:44:38
阅读次数:
210
题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中。如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B。有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报。所以,如果我们能够收买一些间谍的话,我们就可能控制间谍网中的每一分子。因为一旦我们逮捕了一个间谍, ...
分类:
其他好文 时间:
2018-09-07 20:06:49
阅读次数:
142
开场各自读题 Hong发现A很贪心..然后WA1过掉了.. He发现F很SB..然后WA1过掉了.. Hong会了C..写完WA了..猜测是精度问题..改成分数表示就过掉了.. Hao和Hong讨论了一下B..感觉可做..Hao就上了.. 然后Tarjan写错变量名又WA1过了.. 大家一起讨论了一 ...
分类:
其他好文 时间:
2018-09-06 14:35:14
阅读次数:
136
这是LCA算法中的一种,Tarjan算法 其实这么说也有点不对,应该是Tarjan+DFS进行解决 LCA又称为最近公共祖先 那么什么是最近公共祖先: 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点 而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,最近公共祖先就是 ...
分类:
其他好文 时间:
2018-09-06 02:35:15
阅读次数:
126