1. 程式人生 > >二分圖最小點權覆蓋 二分圖最大權獨立集 方格取數 最小割

二分圖最小點權覆蓋 二分圖最大權獨立集 方格取數 最小割

補集 限制 成了 最小 選擇 沒有 構造 最大點權獨立集 棋盤

  二分圖最小點權覆蓋:

    每一條邊 (u, v) 都是一個限制條件, 要求 u 和 v 不能同時取得.

    我們考慮先取得所有的, 然後減去最小的點權.

    建立原點 S , 連向二分圖左邊的所有點, 與 S 連通的意義是左邊的點被選擇了, 或者右邊的點沒有被選擇.

    建立匯點 T , 二分圖右邊的所有點連向它, 與 T 連通的意義是左邊的點沒有被選擇, 或者右邊的點被選擇了.

    利用最小割最大流定理, 我們跑最大流, 再根據最後一次 BFS 得出的情報構造方案.

  定理 覆蓋集與獨立集互補.

  證明 即證明覆蓋集的補集中的點兩兩獨立.

     反設存在 u , v 在覆蓋集的補集中, 且 u , v 不獨立, 那麽覆蓋劑沒有覆蓋邊 (u, v) , 假設不成立.

  二分圖最大點權獨立集:

    對於一對互補的覆蓋集, 獨立集, 覆蓋集的點權之和 + 獨立集的點權之和 = 所有點權之和 S .

    註意到 S 一定, 如果要最大化獨立集的點權之和, 即最小化覆蓋集的點權之和, 轉化為了上述問題.

  方格取數問題: n * m 的網格圖中, 每個格子有一個點權. 選一些不相鄰的格子, 最大化點權之和.

  對於棋盤, 有一個經典的套路, 就是黑白染色.

  本題黑白染色之後變成了二分圖, 求最大點權獨立集即可.

二分圖最小點權覆蓋 二分圖最大權獨立集 方格取數 最小割