【BZOJ3504】危桥

题面

https://www.luogu.org/problemnew/show/P3163

题解

无向图多源多汇问题(存在性的判断)

首先,往返$b_n$次,看做去$2b_n$次,如果把危桥的看成容量为$1$的双向边,就是去$b_n$次。

直接建立超级源和超级汇,

第一次$S$连$a1$、$b1$,$a2$、$b2$连$T$。先跑一边,看看能不能满流。

第二次$S$连$a1$、$b2$,$a2$、$b1$连$T$。先跑一边,看看能不能满流。

如果两次都能满流,则说明有解。

充分性:因为是无向图,所以如果本来有解,把$b1$和$b2$反过来肯定是有解。

必要性:如果只跑第一次,存在两个问题:

一:来自$b1$的流可能会混到$a$中,跑进$a2$,同理,来自$a1$的流可能会混到$b$中,跑进$b2$。

二:危桥只能走一次,但这样可能会正反走两次。

反过来跑,这两个问题都能解决,因为第一个问题揉在一起的流量会反过来,所以最大流一定减少,第二个问题如果第一次正反走两次,那第二次就是正正走两次,就受到限制了。

代码保护。

 

posted @ 2019-07-15 15:53  HellPix  阅读(110)  评论(0编辑  收藏  举报