B - ツリーグラフ
Editorial
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
頂点から成るツリーグラフがあります.このグラフはちょうど 本の辺からなり,連結であることが保障されています.このような性質を持つグラフは必ず閉路を持ちません. 各頂点番号は から の相異なる整数で表され,辺のコストは全て です.
このグラフのいくつかの頂点には宝石が高々 つあります.宝石のある頂点にいるときのみ,その宝石を回収することができます. あなたは,とある頂点 から出発し,全ての宝石を回収し再び頂点 に戻ってくるような経路のうち,最短のものを求めたいと思っています.そのような経路の長さを求めなさい.経路の長さは,経路に含まれる辺のコストの総和で定義されます.
入力
入力は以下の形式で標準入力から与えられる.
… :
- 行目には,ツリーグラフの頂点の数を表す整数 と出発する頂点番号 が与えられる.
- 行目には,頂点 に存在する宝石の数を表す整数 が 個,スペース区切りで与えられる.
- 行から 行,ツリーグラフの 番目の辺が繋いでいる頂点の番号 と が与えられる.
- 与えられるグラフに自己辺や多重辺は存在せず,連結であることが保障されている.
出力
行目に,求める最短経路長を出力せよ.改行を忘れないこと.
入力例1Copy
Copy
5 1 1 0 1 0 1 1 2 2 3 2 4 1 5
出力例1Copy
Copy
6
入力のグラフと,それに対する最短経路の一例は下図の通りです. なので頂点 から出発しています.

入力例2Copy
Copy
3 2 0 1 0 1 2 2 3
出力例2Copy
Copy
0
出発地点にのみ宝石があるので,移動しないのが最短です.