#AT1791. E - Xor Distances

E - Xor Distances

E - 异或距离

分数:$500$ 分

问题陈述

给定一个有 $N$ 个顶点的带权树。第 $i$ 条边双向连接顶点 $u_i$ 和顶点 $v_i$,边权为 $w_i$。

对于一对顶点 $(x,y)$,我们定义 $\text{dist}(x,y)$ 如下:

  • 从 $x$ 到 $y$ 的最短路径上,边权的 异或和

找到所有顶点对 $(i,j)$,满足 $1 \leq i \lt j \leq N$,并输出这些值的和对 $(10^9+7)$ 取模的结果。

什么是异或(XOR)?

整数 $A$ 和 $B$ 的异或,记作 $A\ \mathrm{XOR}\ B$,定义如下:

  • 当将 $A\ \mathrm{XOR}\ B$ 用二进制表示时,第 $2^k$ 位($k \geq 0$)的数位是 $1$ 当且仅当 $A$ 和 $B$ 中恰好有一个数位为 $1$,否则为 $0$。
例如,我们有 $3\ \mathrm{XOR}\ 5 = 6$(二进制表示为:$011\ \mathrm{XOR}\ 101 = 110$)。

约束

  • $2 \leq N \leq 2 \times 10^5$
  • $1 \leq u_i \lt v_i \leq N$
  • $0 \leq w_i \lt 2^{60}$
  • 给定的图是一棵树。
  • 输入中的所有值均为整数。

输入

从标准输入读入输入数据,格式如下:

NN

u1u_1 v1v_1 w1w_1

u2u_2 v2v_2 w2w_2

\vdots

uN1u_{N-1} vN1v_{N-1} wN1w_{N-1}

输出

输出所有 $\text{dist}(i,j)$ 的和对 $(10^9+7)$ 取模的结果。


3
1 2 1
1 3 3
6

我们有 $\text{dist}(1,2)=1$,$\text{dist}(1,3)=3$,$\text{dist}(2,3)=2$,它们的和为 $6$。


5
3 5 2
2 3 2
1 5 1
4 5 13
62

10
5 7 459221860242673109
6 8 248001948488076933
3 5 371922579800289138
2 5 773108338386747788
6 10 181747352791505823
1 3 803225386673329326
7 8 139939802736535485
9 10 657980865814127926
2 4 146378247587539124
241240228

输出所有和对 $(10^9+7)$ 取模的结果。