luogu#P8200. [传智杯 #4 决赛] 生活在树上(easy version)

    ID: 12196 远端评测题 1000ms 512MiB 尝试: 2 已通过: 2 难度: 4 上传者: 标签>树形结构Special JudgeO2优化深度优先搜索,DFS

[传智杯 #4 决赛] 生活在树上(easy version)

题目背景

本题是 P8201 的简单版本,两道题目的解法略有不同。本题和 P8201 在题意上的区别在于本题给定树上的边权,而不是点权。

小智生活在「传智国」,这是一个有 nn 个城市的国家,各个城市由 n1n-1 条道路相连。

每个道路都有长度 wiw_i ,我们定义,小智从城市 aa 走到城市 bb 的代价是 $\mathrm{dis}_{a, b} = \bigoplus \limits_{e \in \mathrm{path}\left(a, b\right)} w_e$,其中 \bigoplus 表示按位异或(如果你不知道什么是按位异或,请参见题目下方的提示/说明),path(a,b)\mathrm{path}\left(a,b\right) 表示 aabb 的简单路径上的边集。也即 disa,b\mathrm{dis}_{a, b} 表示将 aabb 的简单路径上所有边写作 e1,e2,e3,e_1, e_2, e_3, \dots 后,求 we1we2we3w_{e_1} \bigoplus w_{e_2}\bigoplus w_{e_3} \dots 的结果。

有一天,小智获得了去参加传智杯的机会,他在前往比赛地的路上想到了一个问题,但他好像不会做,于是他把这个题告诉了你。聪明的同学,你可以帮帮他吗?

题目描述

小智说:「由于我们的国家只有 nn 个城市和 n1n-1 条道路,那么我们的国家就相当于是一棵树。我在想,在我们的国家中,是否有城市满足『到城市 aa 的代价和到城市 bb 的代价的异或等于 kk』。好难哦,我想不出来,你能帮帮我吗?」

也就是说,给定城市 a,ba, b 和整数 kk,请你计算是否存在城市 tt 满足 $\mathrm{dis}_{t, a} \bigoplus \mathrm{dis}_{t, b} = k$。

输入格式

第一行有两个整数 nnmm,表示国家的城市数和询问的个数。

接下来 n1n-1 行,每行有两个整数 x,y,lx, y, l,表示城市 xx 与城市 yy 有一条长度为 ll 的边。

接下来 mm 行,每行有三个整数 a,b,ka, b, k,表示小智从城市 aa 走到城市 bbkk 的含义与题目描述一致。

输出格式

mm 行,每行一个整数。

对于第 ii 个询问,如果存在至少一个城市 tt 满足要求,则输出 Yes

如果不存在任何一个城市满足条件,则输出 No

输出字符串大小写不敏感,例如,YesyESYESyes 等都算作 Yes

5 3
1 2 2
1 3 6 
2 4 8
2 5 1
1 2 4
2 3 12
1 4 10
nO
No
YeS
5 10
2 1 63
3 1 57
4 2 2
5 2 84
5 2 84
4 1 9977404983223574764
2 5 84
2 1 15996060349666123522
5 4 86
3 1 8428615422876116375
5 1 107
2 3 6
2 3 6
4 2 2
yeS
nO
YEs
No
YEs
nO
YEs
yeS
yeS
YEs

提示

相关概念解释

「树」:树是一个有 nn 个结点和 n1n-1 条边的无向简单连通图。

「按位异或」:按位异或即 C++、python、java 语言中的 「^」 运算。它是一个二元运算,步骤是将两个数的二进制位按位比较,相同为 00,不同为 11。例如:$3 \bigoplus 5 = (011)_2 \bigoplus (101)_2 = (110)_2 = 6$。请注意,这是一个按位运算,不是一个逻辑运算

样例 1 解释

下图为传智国的地图。

t{1,2,3,4,5}\forall t \in \{1, 2, 3, 4, 5\},都不可能有 $\mathrm{dis} _{t,1} \bigoplus \mathrm{dis}_{t, 2} = 4$,$\mathrm{dis}_{t, 2} \bigoplus \mathrm{dis}_{t, 3} = 12$,于是输出 No

而取 t=5t = 5,有 $\mathrm{dis}_{t, 1} \bigoplus \mathrm{dis}_{t, 4} = 10$,于是输出 Yes

数据规模与约定

对于所有测试点,保证 1<n5×1051 < n \leq 5 \times 10^51m5×1051 \leq m \leq 5 \times 10^50wi<2640 \leq w_i < 2^{64}

对于每次询问,保证 1a,bn1 \leq a, b \leq naba \neq b0k<2640 \leq k < 2^{64}