图的连通度
•图的连通度
- 点连通度的定义:
一个具有$N$个点的图$G$中,在去掉任意$k-1$个顶点后$(1<=k<=N)$,所得的子图仍然连通,
去掉$K$个顶点后不连通,则称$G$是$K$连通图,$K$称作图$G$的连通度,记作$K(G)$。
- 边连通度的定义:
一个具有$N$条边的图$G$中,在去掉任意$k-1$条边后$(1<=k<=N)$,所得的子图仍然连通,
去掉$K$条边后不连通,则称$G$是$K$连通图,$K$称作图$G$的连通度,记作$K(G)$。
•连通度与最小割
既然图的点连通度是去掉任意$k-1$个点连通,去掉$k$个点不连通,那么就是去掉最小的$k$个而致不连通,
也就是这$k$个点是此图的最小割点集。边连通度同理为最小割。
•连通度计算
- 指定源点和汇点
指定源点和汇点也就是指定求某一个具体点s到另一个具体点t的连通度
1、边连通度(最小割)
•有向图:
以s为源点,t为汇点建立网络,原图中的每条边在网络中仍存在,容量为1。求该网络的最小割(也就是最大流)的值即为原图的边连通度。
•无向图:
将图中的每条边(i, j)拆成<i, j>和<j, i>两条边,再按照有向图的方法处理;
2、点连通度(最小割点集)
•有向图:
需要拆点。建立一个网络,原图中的每个点$i$在网络中拆成$i'$与$i''$表示入点和出点,有一条边$<i', i''>$,容量为1
($<s', s''>$和$<t', t''>$例外,容量为正无穷表示不能割去)。原图中的每条边$<i, j>$在网络中为边$<i'', j'>$,
容量为正无穷。以$s'$为源点、$t''$为汇点求最大流,最大流的值即为原图的点连通度。•无向图:
将图中的每条边$(i, j)$拆成$<i, j>$和$<j, i>$两条边,再按照有向图的方法处理。
- 不指定源点和汇点
固定一个点为源点,枚举其他点为汇点,此时即为指定源点和汇点,取最小的最小割(或最小割集)
- 带权连通度
在上述建图时,容量为1改成权值即可
•例题
- Ural 1277 Cops and Thieves
【题目大意】
一个犯罪团伙打算去偷一家美术馆。警察决定派 K 个人堵住所有从匪窝通向美术 馆的道路不过他们只能驻守在沿途顶点处而不能在匪窝或美术馆,且每个点都有一个需要警察驻守的最低人数 Ri。问警察能否完成任务。(2 < N <= 100, 1 < M <= 10000)
【思路】
指定源点汇点的无向图的带权点连通
【代码】