编程题
### 问题描述 在一个遥远的银河系中,有 $N$ 颗行星,编号为 $1$ 到 $N$,每一颗行星都通过宇宙航道与另一颗行星相连,所有行星形成了一个树状结构。每颗行星 $i$ 上都有 $P_i$ 个居民。 星际旅行者小然和小明分别在星球 $A$ 和 $B$ 上开始他们的探索之旅。他们的旅行规则如下: - 首先,小然移动到一个她尚未访问过的邻近星球(小明可能已经访问过)。 - 然后,小明移动到他尚未访问过的一个邻近星球(小然可能已经访问过)。 如果从星球 $A$ 到小然所在的星球路径上的居民总数严格大于从星球 $B$ 到小明所在星球路径上的居民总数,小然就会得到一分。 如果他们都可以进行下一步操作,则游戏继续,否则游戏立即结束。 在小然希望最大化她的得分,小明希望最小化小然的得分的前提下,求出小然的最终得分。 ### 输入格式 第一行输入一个整数 $T$,代表测试用例的数量。 每个测试用例包含多行输入: - 第一行包含三个用空格分隔的整数 $N$,$A$ 和 $B$ —— 星球的数量,以及小然和小明初始所在的星球编号。 - 第二行包含 $N$ 个用空格分隔的整数 $P_1$,$P_2$,...,$P_N$,其中 $P_i$ 是第 $i$ 个星球的居民数量。 - 接下来的 $N-1$ 行,每行包含两个空格分隔的整数 $u_i$ 和 $v_i$,代表星球 $u_i$ 和星球 $v_i$ 之间存在宇宙航道。 ### 输出格式 对于每个测试用例,输出一行,包含一个整数,表示在双方都采取最优策略的情况下,小然的最终得分。 ### 样例输入 ```text 3 6 2 4 4 1 5 2 2 3 1 2 3 2 4 2 6 4 4 5 2 1 1 2 3 1 2 2 2 1 1 2 1 2 ``` ### 样例输出 ```text 1 0 1 ``` ### 说明 测试用例 1:小然初始在星球 $2$,小明初始在星球 $4$,所以小然的居民数 $P_2 = 1$,小明的居民数 $P_4 = 2$。由于小然的居民数不大于小明的,所以小然没有得分。然后,小然移动到星球 $3$,小明移动到星球 $6$,现在小然的居民数 $1 + P_3 = 6$,小明的居民数 $2 + P_6 = 5$。由于小然的居民数大于小明的,所以小然得到一分。此后,他们都无法移动,所以游戏结束,小然的最终得分为 $1$。 ### 评测数据范围 $1 \leq T \leq 1000$。 $1 \leq N \leq 5000$。 $1 \leq A, B \leq N$。 $1 \leq P_i \leq 10^9$。 $1 \leq u_i, v_i \leq N$。 所有的 $u_i$, $v_i$ 是唯一的,且 $u_i$ 不等于 $v_i$。 每个测试用例 $N$ 的总和不超过 $5000$。
查看答案
赣ICP备20007335号-2