Problem D

Problem D
Rock Man
解説 菅原
問題
指示された石器を全部作りましょう。
すべての石器は、他の特定の石器を使って短期間
で作れます。
全部作るのに必要な最小日数を答えましょう。
作る順序で必要日数が変わります。
解法
まだ作ってない石器を始点として、その補助に
使える石器を順にたどる。
すでに作った石器に当たる。
そのまま順に補助に使う。
ループになる。
単独で作った場合と補助した場合とのコスト差が最
も小さいものをまず作成
そこを起点としてほかのものを作成。
計算時間
ループ検出~ループ内最小値検出にかかる
時間は O(N)。
石器の名前を引くのにO(N)~O(N log N)。
だめな例
作る順序を変えつつ深さ優先探索
N=1000ですよ。 TLE。
「AとBとDとの作成にかかる最小時間」などの
情報をメモしてメモ化全探査。
N=1000ですよ。メモが容量O(2N )になってRE。
問題サイズを考えましょう。
解答状況
最初のAccepted : 113分 / CLAGGANO
総 Submit
: 34
総 Accepted
: 11