上下界網路流

yoshinow2001發表於2024-08-21

這幾個問題難度幾乎 逐漸遞增

  • 無源匯上下界可行流:先把下界流出來,每個點可能流量不守恆,如果某個點 出-入>0,那麼它需要流向其他點(建立一個超級匯點TT),反之用超級源點連向它,對應的容量就是這個差值。跑一個最大流,如果超級源匯點能跑滿就意味著可行
  • 有源匯上下界可行流:相比之前多欽定了源匯點,直接說建模方式,連一條 \((t,s,+\infty)\) 的邊,並且最終 \(t\to s\) 的流量就是對應的流。這一點只要考慮點的流量:原問題要求有源匯的流,相當於 \(s\)出-入,而不加這條邊的時候保持了每個點流量平衡,但對源匯點是不需要這個平衡的,加入之後流向 \(s\) 的流量= \(s\) 在原圖中多流出的流量,就是要求的流。
  • 有源匯上下界最大流:跑完可行流後,如果有 \(s\to t\) 的增廣路,則一定不會經過 SS或TT,刪去 \(t\to s\) 的邊,跑一個 \(s\to t\) 的最大流,這個最大流+可行流就是答案。
  • 有源匯上下界最小流:依然是刪去 \(t\to s\) 的邊,跑 \(t\to s\) 的最大流,這個可行流-這個逆流就是答案。

相關文章