#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)。