试题:自建物流的无人机实验,完全不知道这题什么意思?
输入格式
输入第一行是一个整数 n,代表京东的物流点个数。
第二行是 n 个整数,第 i 个整数代表编号为 i 的京东物流点的快递员数量 valuei(0 ≤ valuei ≤ 1018)。
接下来 n-1 行,每行有2个整数 x 和 y(1 ≤ x, y ≤ n),代表物流 x 和物流点 y 之间是上下级关系(即物流点 x 是物流点 y 的上级,或物流点 y 是物流点 x 的上级)。
数据可以确保最终会形成一个树形网络,编号为 1 的物流点是没有上级的物流核心节点(树的根)。
对于简单版本,1 ≤ n ≤ 10;
对于中等版本,1 ≤ n ≤ 2000;
对于困难版本,1 ≤ n ≤ 200000。
输出格式
如果对于给定的输入存在一个可以满足要求的分配无人机的方案,则第一行输出一个整数 ans,代表最少需要多少个无人机;若 ans 不为 0,则第二行输出 ans 个整数,代表最少的方案中需无人机的 ans 个结点的编号,编号需要从小到大输出,每两个相邻整数之间有一个空格,行末没有空格(若存在多组符合要求的方案,输出任意一组即可);若 ans 为 0,则不用输出第二行。
如果不存在满足的方案,则只在第一行输出 -1 即可。
样例输入
5 6 0 0 0 0 1 2 2 3 1 4 1 5
样例输出
4 1 2 4 5
提示信息
样例 1 中 1、2、4、5 这四个点两两之间共有 6 个点对,分别是(1, 2), (1, 4), (1, 5), (2, 4), (2, 5), (4, 5),它们的最近公共上级全都是 1。满足要求的方案还有 1、3、4、5。
如果有多种最小方案,输出任意一组即可。