B - ツリーグラフ Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

nn 頂点から成るツリーグラフがあります.このグラフはちょうど n1n-1 本の辺からなり,連結であることが保障されています.このような性質を持つグラフは必ず閉路を持ちません. 各頂点番号は 11 から nn の相異なる整数で表され,辺のコストは全て 11 です.

このグラフのいくつかの頂点には宝石が高々 11 つあります.宝石のある頂点にいるときのみ,その宝石を回収することができます. あなたは,とある頂点 xx から出発し,全ての宝石を回収し再び頂点 xx に戻ってくるような経路のうち,最短のものを求めたいと思っています.そのような経路の長さを求めなさい.経路の長さは,経路に含まれる辺のコストの総和で定義されます.


入力

入力は以下の形式で標準入力から与えられる.

nn xx
h1h_1 h2h_2hnh_n
a1a_1 b1b_1
a2a_2 b2b_2
:
an1a_{n-1} bn1b_{n-1}
  • 11 行目には,ツリーグラフの頂点の数を表す整数 n(1n100)n (1 ≦ n ≦ 100) と出発する頂点番号 x(1xn)x (1≦ x ≦n) が与えられる.
  • 22 行目には,頂点 ii に存在する宝石の数を表す整数 hi(0hi1)h_i (0≦h_i≦1)nn 個,スペース区切りで与えられる.
  • 33 行から n1n-1 行,ツリーグラフの ii 番目の辺が繋いでいる頂点の番号 aia_ibi(1ai,bin)b_i (1≦a_i,b_i≦n) が与えられる.
  • 与えられるグラフに自己辺や多重辺は存在せず,連結であることが保障されている.

出力

11 行目に,求める最短経路長を出力せよ.改行を忘れないこと.


入力例1Copy

Copy
5 1
1 0 1 0 1
1 2
2 3
2 4
1 5

出力例1Copy

Copy
6

入力のグラフと,それに対する最短経路の一例は下図の通りです.x=1x=1 なので頂点 11 から出発しています.


入力例2Copy

Copy
3 2
0 1 0
1 2
2 3

出力例2Copy

Copy
0

出発地点にのみ宝石があるので,移動しないのが最短です.



2025-04-23 (Wed)
16:33:44 +00:00