A75099.异或路径对

普及+/提高

通过率:0%

时间限制:3.00s

内存限制:512MB

题目描述

有一棵包含 NN 个顶点的带权树。第 ii 条边连接顶点 uiu_i 和顶点 viv_i,其权值为 wiw_i,且为无向边。

对于顶点对 (x,y)(x, y),定义 dist(x,y)\text{dist}(x, y) 为:

  • xxyy 的最短路径上所有边的权值的 异或和

请计算所有满足 1i<jN1 \leq i < j \leq N 的顶点对 (i,j)(i, j)dist(i,j)\text{dist}(i, j) 之和,并输出其对 109+710^9+7 取模的结果。

异或(XOR) 的定义如下:对于整数 a,ba, b,它们的按位异或 a XOR ba\ \text{XOR}\ b 定义为:

  • a XOR ba\ \text{XOR}\ b 的二进制表示中,第 2k2^k 位(k0k \geq 0)为 11 当且仅当 a,ba, b 的二进制表示中第 2k2^k 位恰好有一个为 11,否则为 00

例如,3 XOR 5=63\ \text{XOR}\ 5 = 6,因为二进制下 011 XOR 101=110011\ \text{XOR}\ 101 = 110

输入格式

输入的第一行包含一个整数 NN (2N21052 \le N \le 2 \cdot 10^5) —— 表示树中顶点的数量。

接下来的 N1N-1 行描述了树的边。其中的第 ii 行包含三个整数 ui,vi,wiu_i, v_i, w_i (1ui<viN1 \le u_i < v_i \le N, 0wi<2600 \le w_i < 2^{60}) —— 表示顶点 uiu_iviv_i 之间存在一条权重为 wiw_i 的边。

保证给定的图是一棵树。

输出格式

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

输入输出样例

  • 输入#1

    3
    1 2 1
    1 3 3

    输出#1

    6
  • 输入#2

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

    输出#2

    62
  • 输入#3

    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

    输出#3

    241240228

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1ui<viN1 \leq u_i < v_i \leq N
  • 0wi<2600 \leq w_i < 2^{60}
  • 给定的图为一棵树
  • 所有输入均为整数

样例解释 1

dist(1,2)=1, dist(1,3)=3, dist(2,3)=2\text{dist}(1,2)=1,\ \text{dist}(1,3)=3,\ \text{dist}(2,3)=2,它们的总和为 66

样例解释 3

请输出对 109+710^9+7 取模的结果。

首页