Task (UVa Live Archive North America 2010 - Rocky Mountain)
問題
n個タスクがある。以下の2つのタイプの制約ある。
- タスクiはタスクjの終了後A分以降にやらなければならない。
- タスクiはタスクjの終了後A分以内ににやれなければならない。
このような制約がm個あるとき全てのタスクを終了できるか判定せよ。終了できるときはどのタイミングでタスクを行えばいいか答えよ。
1<=n<=100
A<=150
解法
まずトポロジカルソートができない場合は明らかに不可能。制約を変形すると一つ目の制約は、2つ目の制約はとなる。これは最短路問題の制約とみなすことができ、このグラフ上に負閉路が無い場合条件を満たす割り当てが存在する。条件を満たす割り当ては、てきとうにこの条件から収束するまでループを回せば求まる。