AtCoder Beginner Contest 226 C 問題 Martial artist
問題
提出解答
問題の概要
技 技 の 個の技がある. 高橋君が技 を取得するのには 秒かかる. また, 技 を覚えるためには, 個の技 を先に取得していなければならない. ただし, である.
技 を取得するためには最小何秒必要か?
制約
- は全て異なる
解法
技 を取得するために最低限取得しなければならない技を求めたい. そこで, 以下のような有向グラフ を作る.
このとき, 技 が技 を最低限取得しなければならない技であることと, 上で, は から到達可能な頂点であることは必要十分条件である.
よって, 上で から到達可能な頂点全てを としたとき, 求めるべき答えは
である. この は, BFS (DFS) で求めることができる.