ICPC国内予選2009 D問題 : 離散的速度

問題. 離散的速度

単純無向グラフ  G = (V, E) とスタートとゴールの頂点  s, g \in V が与えられる.また,辺  e \in E には制限速度  c(e) と距離  d(e)が与えられている. s から  g まで最小の時間で移動したい.ただし,各頂点では速度を1, 0, -1 だけ増加することができ,各移動する辺では制限速度を守りUターンすることができない.また,スタートからの移動後とゴール時の移動前の速度は1とする.

制約 2 \le |V| \le 30,  1 \le d \le 100,  1 \le c \le 30

解法. ダイクストラ法の変種

最短経路問題を解くダイクストラ法の変種である.ダイクストラ法ではスタートから移動した現在の頂点を状態として動的計画法を行うが,この問題では,直前の頂点,現在の頂点,速度と3つの状態を持つ必要がある.直前の頂点を状態として持つ理由はUターンが禁止されているからである.

計算時間 c_{\max} = \max_{e \in E} c(e) とすると   O(|V|^2 c_{\max} \log |V|c_{\max}) かな?

まとめ

Uターンが禁止されていると難しい.計算時間の解析は適当で自身がない・・・.