ICPCアジア地区筑波大会2015 I問題 : Routing a Marathon Race

問題. Routing a Marathon Race

無向グラフ  G = (V, E) ,2頂点  s, t \in V ,頂点重み  c : V \to \mathbb{N} が与えられる. s から  t へのコスト最小の道を見つけそのコストを答えよ.ただし,道のコストとはその道に含まれる頂点の重み和と,道に少なくとも1頂点が隣接する道以外の頂点の重み和を足したものである.

制約 2 \le |V| \le 40,  1 \le c_v \le 100

解法. 全列挙

 s から  t への道を枝刈りを行いながら全探索する. s から頂点  v への道を  P として, P に含まれない頂点で, P \setminus \{v\} に隣接する頂点全体を  N とする.このとき, v 以降で訪れる頂点の候補は  P N に属する頂点以外である.なぜならば, P N に含まれる頂点は既に道  P のコストに含まれており,また  P の途中で訪れることができたので今後訪れることでコストが最小になることはないからである.この性質は一般の最短路問題でも成立つ性質である.
最悪ケースはグラフが完全二分木のときで,木の高さを  d として  n = |V| としたとき, 2 d \le n を満たすので  d \le n / 2 となる.したがって,計算時間は  O \left(2^{n/2} \right) である.

計算時間 O  \left(2^{n / 2} \right)

まとめ

計算時間の解析が難しい.たぶん正しいはず・・・.
自信がないので後で修正.