SZ#G6MT19. 【GESP强化 六级】宝石收集

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

有一棵包含 NN 个顶点的树,顶点编号为 11NN。小婷老师最初位于顶点 XX,部分顶点上放有宝石。她到达一个放有宝石的顶点时,就可以收集那里的宝石。

小婷老师可以沿树边在相邻顶点之间移动,每经过一条边一次,需要消耗 11 点体力。她要从顶点 XX 出发,收集树上的全部宝石,最后再回到顶点 XX

请计算完成整个过程所需的最少体力。

输入格式

第一行输入两个整数 NNXX,分别表示顶点数量和出发点编号。

第二行输入 NN 个整数 h1,h2,,hNh_1,h_2,\ldots,h_N。如果 hi=1h_i=1,表示顶点 ii 上有宝石;如果 hi=0h_i=0,表示没有宝石。

接下来 N1N-1 行,每行输入两个整数 aia_ibib_i,表示顶点 aia_i 与顶点 bib_i 之间有一条边。

输出格式

输出一个整数,表示收集全部宝石并回到顶点 XX 所需的最少体力。

10 9
1 0 0 0 0 1 0 1 0 0
5 2
3 2
6 1
1 2
3 7
4 1
8 3
2 10
3 9
10
2 1
0 0
2 1
0
9 9
0 0 1 0 0 1 0 1 1
7 6
2 3
1 2
9 5
4 3
5 2
6 5
8 5
10

数据范围与约定

  • 2N1002\le N\le100
  • 1XN1\le X\le N
  • 输入图是一棵树