|
||||||||||
Quasi Binary Search TreeTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 344 Accepted Submission(s): 111 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$为异或符号。 Sample Input
Sample Output
Source | ||||||||||
|