A59728.[NOI2025] 数字树

NOI/NOI+/CTSC

NOI

通过率:0%

时间限制:4.00s

内存限制:1024MB

题目描述

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

定义一个 DFS 序是 优美的,当且仅当按该 DFS 序将 所有标有数字的叶子结点 上的数字拼成一个序列时,该序列可以通过若干次 消除相邻相同数字 的方式得到空序列。例如,在下图中,若叶子结点 4,64, 6 上标有数字 11,叶子结点 5,75, 7 上标有数字 22,则按 DFS 序 [1,4,2,7,3,5,6][1, 4, 2, 7, 3, 5, 6] 将所有标有数字的叶子结点上的数字拼成的序列为 [1,2,2,1][1, 2, 2, 1],可以通过消除相邻的 22 的方式得到 [1,1][1, 1],再通过消除相邻的 11 的方式得到空序列,因此该 DFS 序是优美的;而按 DFS 序 [1,4,2,3,5,6,7][1, 4, 2, 3, 5, 6, 7] 将所有标有数字的叶子结点上的数字拼成的序列为 [1,2,1,2][1, 2, 1, 2],无法通过若干次消除相邻相同数字的方式得到空序列,因此该 DFS 序不是优美的。

给定 nn 次操作,第 ii (1in1 \leq i \leq n) 次操作会选择两个 没有数字 的叶子结点,然后将这两个结点标上数字 ii保证在每次操作后,存在至少一个优美的 DFS 序。你需要求出每次操作后的优美的 DFS 序的数量。由于答案可能较大,你只需要求出答案对 1,000,000,0071,000,000,007 取模后的结果。

输入格式

输入的第一行包含一个非负整数 cc,表示测试点编号。c=0c = 0 表示该测试点为样例。

输入的第二行包含一个正整数 nn,表示二叉树的结点个数为 4n14n - 1

输入的第 i+2i + 2 (1i2n11 \leq i \leq 2n - 1) 行包含两个正整数 lil_irir_i,分别表示结点 ii 的左右子结点。保证 i<li,ri4n1i < l_i, r_i \leq 4n - 1,且所有的 li,ril_i, r_i 互不相同。

输入的第 i+2n1i + 2n - 1 (1in1 \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 行,其中第 ii (1in1 \leq i \leq n) 行包含一个非负整数,表示第 ii 次操作后的优美的 DFS 序的数量对 1,000,000,0071,000,000,007 取模后的结果。

输入输出样例

  • 输入#1

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

    输出#1

    8
    4
  • 输入#2

    0
    6
    2 3
    4 21
    22 23
    5 11
    6 8
    7 9
    12 13
    10 18
    14 15
    16 17
    19 20
    12 13
    14 15
    16 19
    17 18
    20 21
    22 23

    输出#2

    2048
    2048
    2048
    1024
    512
    512

说明/提示

样例 1 解释

该样例即【题目描述】中所示的例子。

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

样例 3

该样例满足测试点 6106 \sim 10 的约束条件。

样例 4

该样例满足测试点 11,1211, 12 的约束条件。

样例 5

该样例满足测试点 172017 \sim 20 的约束条件。

样例 6

该样例满足测试点 24,2524, 25 的约束条件。

数据范围

对于所有测试数据,保证:

  • 1n2×1051 \leq n \leq 2 \times 10^5
  • 对于所有 1i2n11 \leq i \leq 2n - 1,均有 i<li,ri4n1i < l_i, r_i \leq 4n - 1,且所有的 li,ril_i, r_i 互不相同;
  • 对于所有 1in1 \leq i \leq n,均有 2nai,bi4n12n \leq a_i, b_i \leq 4n - 1,且所有的 ai,bia_i, b_i 互不相同;
  • 在每次操作后,存在至少一个优美的 DFS 序。
测试点编号 nn \leq 特殊性质
1,21, 2 1010
353 \sim 5 10210^2 A
6106 \sim 10 10210^2
11,1211, 12 10310^3 A
13,1413, 14 10310^3
15,1615, 16 5×1045 \times 10^4 AB
172017 \sim 20 5×1045 \times 10^4 B
21,2221, 22 5×1045 \times 10^4
2323 2×1052 \times 10^5 A
24,2524, 25 2×1052 \times 10^5

特殊性质 A:保证每次操作选择的两个叶子结点位于结点 1 的不同子树内。

特殊性质 B:保证存在非负整数 mm 满足 n=2mn = 2^m,且对于所有 1i2n11 \leq i \leq 2n - 1,均有 li=2i,ri=2i+1l_i = 2i, r_i = 2i + 1

首页