luogu#P8965. 坠梦 | Falling into Dream
坠梦 | Falling into Dream
题目背景
神明愚弄凡间,所谓命运,不过是神明掷出的一颗骰子而已。
花朵等不到的蝴蝶,终究成了一分蹊跷的梦,一轮轮再次重启。
神明的提线木偶一次又一次的被扼住脖颈, 以爱的名义,消逝在时间的花海里。
无数的执念背后,都有一个被扭曲的“真理”。
你所承诺的没有出现,彻夜无眠,或许我只是自作主张的,替你爱了一次人间
“最虔诚者只祝祷,不虔诚者才有所求。”
没有过信仰,因为舍命救了一个人,有幸来到了天堂。
题目描述
给定一棵 个结点的无根树,每条边有非负整数边权。结点由 编号。
对于每一个点对 ,定义 的距离 为 两点之间唯一简单路径上边权的异或和。
给定两个结点 ,定义点 的价值 为 与 的距离的异或和,即
$$\operatorname{val}_{x, y}(i) = \operatorname{dis}(x, i) \oplus \operatorname{dis}(y, i) \textsf{。} $$现在有 次询问,每次询问给出四个整数 ,求 $\displaystyle \bigoplus_{i = l}^{r} \operatorname{val}_{x, y}(i)$ 的值,即求
$$\operatorname{val}_{x, y}(l) \oplus \operatorname{val}_{x, y}(l + 1) \oplus \cdots \oplus \operatorname{val}_{x, y}(r - 1) \oplus \operatorname{val}_{x, y}(r) \textsf{。} $$上述公式中, 表示二进制按位异或。
输入格式
第一行,两个整数 。
接下来 行,每行三个整数 ,表示 之间有一条权值为 的边。
接下来 行,每行四个整数 ,表示一次询问。
输出格式
输出 行,每行一个整数,为每次询问的答案。
3 2
1 2 1
2 3 1
1 2 1 3
2 3 2 3
1
0
提示
【样例解释】
输入给出的树如上图所示。对于点对的距离,有
- $\operatorname{dis}(1, 1) = \operatorname{dis}(1, 3) = \operatorname{dis}(2, 2) = \operatorname{dis}(3, 1) = \operatorname{dis}(3, 3) = 0$ 以及
- $\operatorname{dis}(1, 2) = \operatorname{dis}(2, 1) = \operatorname{dis}(2, 3) = \operatorname{dis}(3, 2) = 1$。
第 问:$\operatorname{val}_{1, 2}(1) \oplus \operatorname{val}_{1, 2}(2) \oplus \operatorname{val}_{1, 2}(3) = (0 \oplus 1) \oplus (1 \oplus 0) \oplus (0 \oplus 1) = 1 \oplus 1 \oplus 1 = 1$。
第 问:$\operatorname{val}_{2, 3}(2) \oplus \operatorname{val}_{2, 3}(3) = (0 \oplus 1) \oplus (1 \oplus 0) = 1 \oplus 1 = 0$。
【数据范围】
本题采用捆绑测试。
子任务编号 | 分值 | ||
---|---|---|---|
1 | 24 | ||
2 | 14 | ||
3 | |||
4 | 48 |
对于 的数据,保证 ,,,。
【提示】
本题最大 I/O 量达到 60 MiB,请注意 I/O 效率。