#P6727. Quasi Binary Search Tree

Quasi Binary Search Tree

Problem Description

给你一个$n$个点的二叉树,每个点被标上了$1$到$n$中不同的标号。一棵树是伪二叉树当且仅当对于每个节点,它的左子树的所有节点的标号都小于它本身,且它的右子树的标号都大于它本身,或者它的左子树都大于它且它的右子树都小于它。

现在有一棵树,它的标号都被擦去了,问能否将其标上号使得这棵树是一个伪二叉树。如果有多解,输出字典序最小的解,即比较$1$号点的标号,再比较$2$号点的标号,依次类推。

Input

第一行一个正整数$T(T\leq 7.5\times 10^4)$表示数据组数。

对于每组数据,第一行一个正整数$n, (n\leq 10^5, \sum n\leq 2.5 \times 10^6)$。

接下来$n$每行两个整数$l_i, r_i$表示$i$号节点的左右儿子,如果不存在左儿子或者右儿子,那么对应的数字为$0$,存在唯一的节点不是其他所有点的儿子。

Output

对于每组数据,令$u$点的标号为$p_u$,那么输出$\sum_{u=1}^n (p_u\oplus u)*233^u$对$10^{9}+7$的值,这里的$\oplus$为异或符号。

1 5 0 0 0 0 0 4 2 0 1 3
114911413 样例解释 实际上答案应该为 (1,3,5,4,2)。