配点 : 500 点
問題文
N 頂点の重み付き木があります。i 本目の辺は頂点 ui と頂点 vi を双方向に結んでいて、その重みは wi です。
頂点の組 (x,y) について、dist(x,y) を以下のように定めます。
- x から y への最短パスに含まれる辺全ての重みの XOR
1≤i<j≤N を満たす全ての組 (i,j) について dist(i,j) を求め、その総和を (109+7) で割った余りを出力してください。
$\text{ XOR }$ とは
整数 a,b のビットごとの排他的論理和 a XOR b は、以下のように定義されます。
- a XOR b を二進表記した際の 2k (k≥0) の位の数は、a,b を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 XOR 5=6 となります (二進表記すると: 011 XOR 101=110)。
制約
- 2≤N≤2×105
- 1≤ui<vi≤N
- 0≤wi<260
- 与えられるグラフは木
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N
u1 v1 w1
u2 v2 w2
⋮
uN−1 vN−1 wN−1
出力
dist(i,j) の総和を (109+7) で割った余りを出力せよ。
3
1 2 1
1 3 3
6
dist(1,2)=1, dist(1,3)=3, 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
(109+7) で割った余りを出力してください。