#26218. NOI2025 day1 tree

NOI2025 day1 tree

题目描述

给定一棵 4n14n - 1 个结点的二叉树,其中每个非叶结点都有恰好两个子结点。非叶结点编号为 112n12n - 1,叶子结点编号为 2n2n4n14n - 1。初始时,每个叶子结点上都没有数字。

定义一个 DFS 序是优美的,当且仅当按该 DFS 序将所有标有数字的叶子结点上的数字拼成一个序列时,该序列可以通过若干次消除相邻相同数字的方式得到空序列。

给定 nn 次操作,第 ii1in1 \leq i \leq n)次操作会选择两个没有数字的叶子结点,然后将这两个结点标上数字 ii。保证在每次操作后,存在至少一个优美的 DFS 序。要求出每次操作后的优美的 DFS 序的数量,答案对 109+710^9 + 7 取模。

输入格式

  1. 第一行包含一个非负整数 cc,表示测试点编号,c=0c = 0 表示该测试点为样例。
  2. 第二行包含一个正整数 nn,表示二叉树的结点个数为 4n14n - 1
  3. i+2i + 21i2n11 \leq i \leq 2n - 1)行包含两个正整数 lil_irir_i,分别表示结点 ii 的左右子结点。保证 i<lii < l_iri4n1r_i \leq 4n - 1,且所有的 li,ril_i, r_i 互不相同。
  4. i+2n+1i + 2n + 11in1 \leq i \leq n)行包含两个正整数 ai,bia_i, b_i,表示第 ii 次操作选择的叶子结点的编号。保证 2nai,bi4n12n \leq a_i, b_i \leq 4n - 1,且所有的 ai,bia_i, b_i 互不相同。

输出格式

输出 nn 行,其中第 ii1in1 \leq i \leq n)行包含一个非负整数,表示第 ii 次操作后的优美的 DFS 序的数量对 109+710^9 + 7 取模后的结果。

样例1

输入

0
2
2 3
4 7
5 6
4 6
5 7

输出

8
4

样例1解释

  • 第一次操作后,叶子结点 4466 标有数字 11,拼成的序列均为 [1,1][1, 1],所有 23=82^3 = 8 个 DFS 序都是优美的。
  • 第二次操作后,叶子结点 474 \sim 7 分别标有数字 1,2,1,21, 2, 1, 2,共有 44 个优美的 DFS 序。

数据范围

  • 1n2×1051 \leq n \leq 2 \times 10^5
  • 对于所有 1i2n11 \leq i \leq 2n - 1i<lii < l_iri4n1r_i \leq 4n - 1,且所有的 li,ril_i, r_i 互不相同。
  • 对于所有 1in1 \leq i \leq n2nai,bi4n12n \leq a_i, b_i \leq 4n - 1,且所有的 ai,bia_i, b_i 互不相同。
  • 每次操作后,存在至少一个优美的 DFS 序。
测试点编号 nn \leq 特殊性质
1, 2 1010
3 ~ 5 10210^2 A
6 ~ 10
11, 12 10310^3 A
13, 14
15, 16 5×1045 \times 10^4 AB
17 ~ 20 B
21, 22
23 2×1052 \times 10^5 A
24, 25

特殊性质说明:

  • A:保证每次操作选择的两个叶子结点位于结点 11 的不同子树内。
  • B:保证存在非负整数 mm 满足 n=2mn = 2^m,且对于所有 1i2n11 \leq i \leq 2n - 1,均有 li=2il_i = 2iri=2i+1r_i = 2i + 1