为何没有上下界网络流题解
查看原帖
为何没有上下界网络流题解
592894
lantifac楼主2024/5/23 13:40

提醒:本讨论可能有部分题目解法相关内容,仅用于说明观点;如果还需做题可自行关闭。

没有一篇题解是从上下界网络流的角度去理解建图的,个人认为,从这个角度理解是最为自然的。

主要思想是将第 ii 天拆成两个点(即早上 / 下午),用 i→i′i\to i' 的流量下界刻画毛巾限制 rir_i;并将送洗操作转化为向后缀连边。答案即为该图的(有源汇)最小费用可行流:

  1. s→is\to i,[0,+∞],p[0,+\infty],p
  2. i→i′,[ri,+∞],0i \to i',[r_i,+\infty],0
  3. i′→t,[0,+∞],0i'\to t,[0,+\infty],0
  4. i′→i′+1,[0,+∞],0i'\to i'+1,[0,+\infty],0
  5. i′→i+m,[0,+∞],si'\to i+m,[0,+\infty],s
  6. i′→i+n,[0,+∞],fi'\to i+n,[0,+\infty],f

发现存在下界的边只有 i→i′i \to i',根据上下界网络流的做法,从超级源点 SS 向 i′i' 连上界为 rir_i 的边,从 ii 向超级汇点 TT 连上界为 rir_i 的边;原图的汇点 tt 向源点 ss 连上界 +∞+\infty 的边。

那么存在一条可能的流形如 S→i′→t→s→i→TS \to i' \to t \to s \to i \to T,其中 s→is\to i 费用为 pip_i ,S→i′S \to i' 受到 rir_i 的上界限制。对应着购买一块餐巾给第 ii 天的情况。

而在大部分题解的建图中,略去了原图的源汇点 s,ts,t,用 S→iS\to i,费用为 pip_i 的边取代了 S→i′→t→s→iS \to i' \to t \to s \to i 的这样一条路径。可以看出,这时原本 S→i′S \to i' 的上界限制在这里并不存在;这会造成细微的歧义,虽然在原题的数据范围下,这种做法的结果是完全正确的。

(歧义具体是:考虑给送洗餐巾数目加上限制,并存在负数送洗代价的情况,这种建图认为每天可以产生 ≥ri\ge r_i 块脏餐巾,而上下界的建图认为只能产生恰好 rir_i 块;即使 S→iS\to i,费用为 pip_i 的边加上 rir_i 的上界也如此)

所以,对简化后建图的理解应该是:钦定 i→i′i\to i' 的边有至少 rir_i 的流量,那么在 S→i′S\to i' 以及 i→Ti\to T 连接上界为 rir_i 的边,通过流形如 S→i′→t→s→iS \to i' \to t \to s \to i 的路径(或者送洗的路径),流满之后撤去 S,TS,T,ii 就恰好出度多 rir_i,i′i' 入度少 rir_i,刚好对应 i→i′i\to i' 边的流量。也即上下界网络流的思想,在减去边流量下界的图上跑最大流进行调整,使得每个点流量平衡。

2024/5/23 13:40
加载中...