bzoj1797 最小割唯一性问题

题目大意

有两问:

  1. 判断一条边是否可以在最小割中;
  2. 判断一条边是否一定在最小割中.

做法:

首先做一遍最大流得到残量网络.


第一问

对于第一问,我们设这条边为 (u,v)

则残量网络上从 s u 连一条流量为 + 的边,从 v t 连一条流量为 + 的边,可以保证 u 被划到 s 集, v 被划到 t 集.

如果在残量网络上 u v 有路径,则存在一条 s u v t 的路径,出现了增广路,最小割会增加,所以残量网络上 u v 没有路径.

首先可以得到 (u,v) 必须满流,不然 u,v 可以直接通过这条边连接.

其次如果 u,v 之间有别的路径可以连通,则 u v u (因为 (u,v) 满流,所以有 (v,u) 的反向弧)在同一个强连通分量中.

所以我们只需要对残量网络tarjan缩点,首先判断 (u,v) 是否满流,如果满流则判断是否在同一个强连通分量中,如果不在同一个强连通分量中则 (u,v) 可以在最小割中.


第二问

对于第二问,我们也设这条边为 (u,v)

我们寻找 u,v 的性质.

因为 u 一定会被划到 s 集,所以 s 在残量网络上一定可以到达 u
因为如果 s 不能到达 u ,则可以从 u 连一条流量为 + 的边到 t ,不会出现增广路,最小割不会改变,则 u 可以被划到 t 集中,出现了矛盾.

由根据第一问, (u,v) 可以出现在最小割中则 (u,v) 一定满流,所以 s u 一定有一条増广过的路,所以一定有一条 u s 的由反向弧构成的路,而 s 能到达 u ,所以 s,u 在同一个强连通分量中.

同理, v,t 在同一个强连通分量中.


综上所述,

对于第一问,我们找到一条满流的边,判断它的两端是否不在同一个强连通分量中即可.

对于第二问,我们找到一条满流的边,判断是否分别在 s 所在的强连通分量, t 所在的强连通分量之中即可.

你可能感兴趣的:(题解,网络流,强连通分量)