九州大学プログラミングコンテスト2014 H問題:お風呂は気持ちいい

問題. お風呂は気持ちいい

 M 人の魔法使いがいて,その内  G 人が魔導石に近い場所にいる.魔法使い  f_i から魔法使い  t_i へ最大  c_i の魔力を受け渡すことができるという  N 個のリストが与えられる.魔導石からは無限に魔力が湧き出ており,魔導石に近い魔法使いは魔導石から無制限に魔力を得ることができる.魔法使いの1人であるアスナ P 以上の魔力を渡すことができるかを判定せよ.

制約 1 \le N \le 500 1 \le M \le 100 0 \le G \le 10 0 \le P \le 1,000

解法. 最大流問題

魔導石と各魔法使いを頂点として,魔導石から魔導石に近い魔法使いへ容量が無限大の弧を張る.また,魔力の受け渡しの制約として魔法使い  f_i から魔法使い  t_i へ容量  c_i の弧を張る.このとき,魔導石からアスナへの最大流が  P 以上ならば答えを Yes ,それ以外ならば No と出力する.

計算時間 O(m n^2)  n = M + 1, m = G + N

まとめ

巨人の肩の上に立つ問題