The 3rd Universal Cup. Stage 28: Haidian Huangzhuang
- 連結:https://qoj.ac/contest/1903
- 時間:2025 Feb 2, 02:00-07:00
- 團隊:ネクロマンサー (SorahISA)
- 成績:0 / 11, Penalty 0, dirt 0% ( A B C D E F G H I J K )
感冒所以只打快三個小時,但一題都沒做出來
Problem A. Iron Warrior
Problem B. Little, Cyan, Fish!
Problem C. Currency
Tags: min-cut
有一張 個點的網格圖,點的編號為 (、),且 跟 之間有一條帶正權無向邊當且僅當 。
接著有 個限制 ,表示若同時走了 跟 兩條邊,則需要花費額外代價 。
請求出從 走到 的最小代價。
- 、、 權重
網路流最小割經典題。
首先,對每個 , 跟 只會走其中恰好一個,否則路徑必然出現環。
因此,對 的邊建立一個點 。令走上方為 、走下方為 ,則可以建立 跟 的邊並求出 。如果割掉 之後 跟 相連,則代表 這條邊被選擇,反之亦然。
權重的設定也很簡單, 的權重就是下方該條邊的權重, 的權重就是上方該條邊的權重。會走直線 的情況只會發生在 跟 不同邊(被切開了),於是可以在 雙向的建一條邊,權重就是直走邊的權重。不過要注意的是,可能會發生第一條邊走下面或最後一條邊走上面的情況,於是需要將方格左右各拓寬一格,讓 跟 的權重設為 。
最後的 個限制,只要建立 權重為 的單向邊即可。該權重只有在 連著 且 連著 時才會被計算進去。
於是把 Dinic 模板貼上、按上所述的建好邊、跑 的最大流即可。