T158449 【DSOI 备用】侦察

题目描述

攸宁非常喜欢玩一个叫做《树国建设者》的游戏,他在这个游戏里当起了国王。 树王国原来是一个非常宁静且和平的国度,可有一天,一群恐怖分子袭击了这里。 树王国由 $n$ 个城市和 $n-1$ 条双向道路组成,这些城市由 $1 \sim n$ 进行标号。显然地,这是一棵树。其中 $1$ 号节点为树王国的首都(即树根)。现在,恐怖分子控制住了其中的 $m$ 个城市,特别的,首都是不会被控制的。如果一个城市被控制,那么这个城市通往其子树的边以及其子树中的边都会被控制。被控制的边将会失去通讯功能,因此树王国需要派遣若干支侦察小队前去其中的一些点进行侦察。如果一个小队被安置在一个结点上,那么该结点通往其子树的所有边将都可以被侦察到。显然,只要安置足够多的小队,就能使所有被控制的边都被侦察到。 但是事情没有这么简单,处于隐蔽考虑,树王国不能在一条路上运输过多的小队,因此我们认为每一条边都有一个运载能力 $w_i$,表示该边最多只能承受 $w_i$ 的运输压力。如果我们在一个结点放置了一支运输小队,则从首都到这个结点的所有边都将会承载 $1$ 的运输压力。 现在,攸宁想要在没有任何一条边超出运载能力的情况下, 使尽可能少的被控制边无法被侦察到。请你告诉攸宁,这个最小值为多少。若所有被控制边都能够被侦察到,请告诉攸宁最少需要派遣几支侦察小队。

输入格式

第一行包含两个正整数 $n$ 和 $m$,意义见题目描述。\ 接下来 $n-1$ 行,每行三个正整数 $u_i,v_i,w_i$,表示存在一条道路联通 $u_i$ 和 $v_i$,且该边的运载能力为 $w_i$。\ 接下来一行,包含 $m$ 个正整数,每个正整数 $a_i$ 表示被恐怖分子控制住的城市的结点标号。

输出格式

如果无法做到使所有被控制边都被观察到,第一行输出一个字符串`No`,第二行输出一个整数,表示无法被观察到的被控制边数的最小值。\ 否则第一行输出一个字符串`Yes`,第二行输出一个整数,表示所需派遣侦察小队数量的最小值。

说明/提示

#### 【样例 1 解释】 ![](https://cdn.luogu.com.cn/upload/image_hosting/9ck72n2q.png)\ 在 $2$ 结点放置一支小队,可以观察到边 $2-3$ 和 $2-4$ ,然后再在 $5$ 结点放置一支小队,仅能观察到 $5-6$(也可以在 $6$ 结点放置一支小队,仅能观察到 $6-7$ ,结果不变 )。 #### 【样例 2 解释】 ![](https://cdn.luogu.com.cn/upload/image_hosting/gkftv1d3.png)\ 在 $2$ 结点放置一支小队,所有被控制的边都能够被观察到。 #### 【数据范围与提示】 **本题采用捆绑测试。** 你必须通过 Subtask 中所有的测试点才能获得该 Subtask 的分数。 对于 $100\%$ 的数据:$1 \le n \le 10^5,1 \le m \le n-1,2 \le a_i \le n,0 \le w_i \le n-1,1 \le u_i,v_i \le n$。 | Subtask | 分值 | $n \le$ | 特殊性质 | | :--------: | :---: | :-----: | :--------------: | | 1 | 15pts | $8$ | 无 | | 2 | 20pts | $400$ | 无 | | 3 | 15pts | $4000$ | 无 | | 4 | 10pts | $10^5$ | $w_i=n-1$ | | 5 | 15pts | $10^5$ | 保证数据随机生成 | | 6 | 25pts | $10^5$ | 无 |