No.241

二部マッチング問題に帰着させる.

と生徒, 出席番号のノードを用意する.

から各生徒へ容量1のノードをつなぎ, 各出席番号から へ容量1のノードをつなぐ. さらに生徒から嫌いな出席番号を除いた出席番号へノードをつなぐ.

このグラフの最大流問題を (Ford-Fulkerson法なりを使って) 解く.

流量が 未満ならば全生徒に出席番号を割り振ることができない.

そうでないときは解いたときの生徒から出席番号への流量が1の辺をかき集める.