利用网络流通过拆点判断图的路径存在性问题:abc318_g

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/132644032

https://atcoder.jp/contests/abc318/tasks/abc318_g

对于图上一类路径是否存在问题,可以考虑网络流。

Trick1 路径存在转网络流

题目转化为:

找出两条不交路径 B->A, B->C

对于已经找到的路径,我们 不能再走 。对于当前我们找到的某条路径,我们可能进行 反悔 。这些条件列出来就是一个典型的 网络流模型

在这里插入图片描述

在这里插入图片描述

Trick2 无向图转网络流

考虑每个点要被流入和流出,所以可以拆成两个点。

然后流入点就向流出点连边。

在这里插入图片描述

其它的无向边就变成了两条有向边。
在这里插入图片描述