L - グラフ色ぬり image

考えたこと

  • 最小カット関連問題であることは既知だが、テーマが最小カット=最大流なだけか、解法も最小カットなのか不明
  • 青の辺を全部取り除いた時の最大流は、単なる定数なのでまず求めてしまえばよい、以下で定数Fとする
  • 与えられたグラフの青の辺に対して「消す消さない」の二択をやって、最大流をFにする問題
    • 青の辺は200あるので2^200は無理だから最小カットで解くのが良さそう?
    • 「最大流がF」という制約をどうやって表現するのか?
    • 青の辺を全部取り除いた状態での最大流の塗り分けから「最大流を増やさない」という条件で辺を足していったものが答えだろうか?
      • そうともいえない気がするが一旦それで考えてみよう
    • image
      • 辺Dは、選択するとSとTが繋がってしまうので最大流が増える
        • 1のコストを払って切るべき
        • 2つの無限大辺は冗長な書き方で、どちらかを縮めても問題ないが、後でやる
      • 辺Cは、選択するとSとAがつながる
        • でもAはSになっても問題ないので切る必要がない
      • 辺をE,Fと繋がってるものも同様に表現できる
        • この場合はどちらかを切るべき
    • 無意識に「切る」メタファーで考えたせいで無駄な設計になってしまった、やり直し
      • 左グラフで辺を残すか残さないかの選択が、右グラフでは頂点を赤で塗るかどうかに対応する
      • 辺を消す時、コストを1支払う
      • image
      • あ、これ辺を頂点にして二部グラフだな
    • これでいいんだろうか?
  • 他の人の解説