P1093

树上的询问

树上的询问

给定一棵包含 nn 个顶点的带权有根树,以及 pp 次询问。对于每次询问,判断树中是否存在一条长度恰好为 LenLen 的简单路径。

路径经过树边时可以沿任意方向行走。路径的起点与终点可以相同,此时路径仅包含一个顶点,不经过任何边,长度为 00。

输入格式

第一行包含两个整数 nn 和 pp,分别表示树的顶点数和询问数。

接下来 n−1n-1 行,每行包含三个整数 xx、yy 和 cc,表示存在一条从顶点 xx 指向顶点 yy、长度为非负整数 cc 的树边。

接下来 pp 行,每行包含一个整数 LenLen,表示询问树中是否存在一条长度恰好为 LenLen 的路径。

输出格式

输出共 pp 行。对于每次询问,如果存在符合条件的路径,输出 Yes;否则输出 No。

样例输入

6 4
1 2 5
1 3 7
1 4 1
3 5 2
3 6 3
1
8
13
14

样例输出

Yes
Yes
No
Yes

数据范围

  • 对于 30%30\% 的数据,n≤100n\le 100;
  • 对于全部数据,1≤n≤1041\le n\le 10^4,1≤p≤1001\le p\le 100;
  • 1≤x,y≤n1\le x,y\le n;
  • 0≤c≤1050\le c\le 10^5;
  • 0≤Len≤1060\le Len\le 10^6;
  • 所有输入均为整数,且输入的 n−1n-1 条边构成一棵树。

来源与许可

本题题面与测试数据整理自 BZOJ。

样例 1

输入

6 4
1 2 5
1 3 7
1 4 1
3 5 2
3 6 3
1
8
13
14

输出

Yes
Yes
No
Yes