J. 异或的路径
题号:NC26159
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给一棵 n 个点的树,1 号节点为根,边有边权,令 f(u,v) 表示 u 节点到 v 节点,路径上边权异或值。求 ,结果对 1000000007 取模。

输入描述:

第一行一个整数 ,接下来 n-1 行,第 i 行输入两个整数,p[i](p[i] < i), v[i](100000>=v[i]>=1)   (分别表示 i+1号节点的父亲,以及 i+1 与 p[i] 相连的边的权值。

输出描述:

输出一个整数表示答案。
示例1

输入

复制
3
1 1
1 1

输出

复制
4
示例2

输入

复制
5
1 1
2 2
3 3
4 4

输出

复制
60

备注:

样例 1,f(1,2)=f(2,1)=f(1,3)=f(3,1)=1,f(1,1)=f(2,2)=f(3,3)=f(2,3)=f(3,2)=0