其他分享
首页 > 其他分享> > 2022-7-2 网络流听课笔记

2022-7-2 网络流听课笔记

作者:互联网

CF925F

题目叙述

一个上下界网络流问题,每条边的流量在 \([at+b,ct+d]\) 内。t 在 \([0,1]\) 内随机,求这张图有多少概率有解。

题解

如果 \(t\) 不形成一个区间,那这个题就太难了。所以猜测 \(t\) 形成一个区间。
其次,这个东西如果是单调的,那就太简单了。所以我们猜他是凸的,需要三分这个区间。
先温习一下怎么求上下界网络流的可行解。先保证每条边都至少有下界那么多,然后再满足流量平衡。具体地,如果在每条边流满下界时,流出比流入多,那么就从 \(s\) 向这个点连接多流出的那些流量,否则就从他向终点链接。有解当且仅当所有 \(s\) 流出的边都流满了。
考虑证明一下上面猜测的结论。

引理:\(\lambda maxflow(t_1)+(1-\lambda) maxflow(t_2)\le maxflow(\lambda t_1+(1-\lambda)t_2)\)

这一点的证明基于如下事实:跑最大流的图每条边的流量是一个关于 \(t\) 的固定的一次函数。因此对于 \(t_1\) 和 \(t_2\) 构成最大流的那组解,在每条边的流变为 \(\lambda f(t_1)+(1-\lambda)f(t_2)\) 之后就是一组流。因此最大流不小于这个值。所以 \(maxflow(t)\) 就是一个上凸函数。

那么只要找到 \(sum(t)-maxflow(t)\) 的零点即可。其中 \(sum(t)\) 理解为所有连向 \(s\) 的边的边权和。
而这个东西实际上是一个下凸函数,因为其实它的形式是 \(\sum_{} \max(a_ix+b_i,0)\) ,其中 \(i\) 代表一条从源点连向一个点的边。这是因为 \(\max(ax+b,0)\) 是一个下凸函数,所以一大堆函数相加也是一个下凸函数。

总结

所以 \(gap(t)=sum(t)-maxflow(t)\) 是一个下凸函数减去上凸函数,因此还是一个上凸函数。那么直接三分即可。

P3263 危桥

题目叙述

给定无向图,两个人分别从 \(a_1\) 走到 \(a_2\) 和 \(b_1\) 走到 \(b_2\) ,分别要走 \(2a_n\) 和 \(2b_n\) 次。每条边有一个经过次数上限,上限制可能是无限也可能是 2 。判断是否有解。

题解

标签:max,sum,凸函数,笔记,下界,2022,听课,maxflow,lambda
来源: https://www.cnblogs.com/YouthRhythms/p/16438067.html