問題特有の性質に着目し,解きやすい形に言い換えて行きましょう.
問題原案:uni_kakurenbo
時系列を考えると,コンテスト が終了して以降に(直/間接的に)コンテスト に参加できるとき,必ずコンテスト が終了して以降に(直/間接的に)コンテスト に参加することはできないと分かります.
したがって, 以上 以下の整数を頂点とし,「コンテスト の終了時にコンテスト に参加できる」ことを の有向辺で表現したグラフ は非循環 (DAG) になります.
の の辺の重みを,コンテスト の終了からコンテスト が始まるまでの待ち時間 とすると,この問題は以下のように言い換えることができます.
DAG における最小道被覆問題が,最大二部マッチング問題,すなわち最大流問題に帰着できることは有名ですが,この問題は最小費用流を用いて同様のアプローチで解くことができます.
時間計算量は などです.
解説:uni_kakurenbo