1. 程式人生 > 其它 >[筆記] 建圖

[筆記] 建圖

費用流

積木大賽

模型概述

一個長度為 \(n\) 的序列 \(a_i\),對於區間 \([l,r]\) 減一的費用為 \(c_{i,0}\),加 \(1\) 的費用為 \(c_{i,1}\),問最少使 \(a_i\) 都變為 \(0\) 的費用。

建圖概述

差分之後,相當於對某一對單點的加減,按照最終需要的結果算出每個位置的需要加減權值。

\(T\) 連正權,負權連 \(S\),中間的連邊按照代價連。

習題

[YZOJ] 7087 pandemic \(√\)

[DMOJ] DMOPC '20 Contest 7 P3 Senpai and Art \(√\)

最小路徑覆蓋

模型概述

給出 \(n\)

個點,要求第 \(i\) 個點經過 \(a_i\) 次,經過 \(i\) 之後選擇走 \(j\) 的代價是 \(p_{i,j}\),詢問代價最值的問題。

建圖概述

這個問題相當於在圖上選擇符合要求的若干條路徑。

考慮到每個點的經過次數是固定的,實際上並不關心每條路徑的整個走向,而只關心每條路徑的相鄰兩點到底是誰走向誰。

不妨把每個點拆成 \(i,i'\),然後連邊 \({\rm add}(S\ , i\ , a_i\ ,0)\ ,{\rm add}(i'\ ,T\ ,a_i\ ,0)\ ,{\rm add}(i\ ,j'\ ,\infty\ , p_{i,j})\).

習題

P4298 [CTSC2008]祭祀

P4553 80人環遊世界 \(√\)

P1251 餐巾計劃問題 \(√\)

P2469 [SDOI2010]星際競速

優化建圖

  • 字首和優化建圖

  • 線段樹優化建圖

  • 虛點優化建圖