만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이진 트리

시간 제한1초메모리 제한1024 MB

요약
트리 T_i마다 연속된 잎 구간을 정확히 덮는 데 필요한 부분 트리 최소 개수의 합을 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 수학
정답자
아직 제출이 없습니다

정의

모든 노드의 자식 노드가 00개 또는 22개인 이진 트리 TT에 대해 S(T)S(T)를 다음과 같이 정의한다.

  • TT에서 노드 uu를 루트로 하는 서브 트리는 uu와 uu의 자손 노드로만 이루어진 집합이다.
  • TT의 중위 순회 수열 p(T)p(T)는 TT를 중위 순회하며 방문한 노드를 순서대로 나열한 수열이다. 다음과 같이 재귀적으로 정의한다.
    • TT의 루트 노드를 rr이라 하자. [r][r]은 rr 하나로만 이루어진 길이 11의 수열이다.
    • rr의 자식 노드가 00개이면 p(T)p(T)는 [r][r]이다.
    • rr의 자식 노드가 22개이면, rr의 왼쪽 자식을 루트로 하는 서브 트리를 XX, 오른쪽 자식을 루트로 하는 서브 트리를 YY라 할 때 p(T)p(T)는 p(X)p(X), [r][r], p(Y)p(Y)를 순서대로 이어 붙인 수열이다.
  • TT의 리프 노드 개수를 kk라 하자. TT의 리프 노드에 p(T)p(T)에 나타나는 순서대로, 즉 중위 순회 방문 순서대로 1,2,⋯ ,k1, 2, \cdots, k의 번호를 붙인다.
  • TT의 서브 트리를 선택하면, 그 서브 트리에 포함된 리프 노드가 덮인다고 한다.
  • 1≤a≤b≤k1 ≤ a ≤ b ≤ k일 때, f(a,b)f(a, b)는 번호가 aa 이상 bb 이하인 리프 노드만 덮고 나머지 리프 노드는 덮지 않도록 TT에서 선택해야 하는 서브 트리의 최소 개수이다.
  • S(T)S(T)는 1≤a≤b≤k1 ≤ a ≤ b ≤ k인 모든 정수 순서쌍 (a,b)(a, b)에 대한 f(a,b)f(a, b)의 합을 109+710^9+7로 나눈 나머지이다.

(a)는 정의에 따라 만든 트리이다. (b)는 같은 트리의 리프 노드에 번호를 붙인 모습이다.

f(5,7)f(5, 7)의 값은 22이다. 아래 그림처럼 서브 트리 두 개를 선택하면 55, 66, 77번 리프 노드만 덮인다.

1≤a≤b≤71 ≤ a ≤ b ≤ 7인 모든 f(a,b)f(a, b)의 합은 4747이다. 이를 109+710^9 + 7로 나눈 나머지를 구하면 S(T)=47S(T) = 47이다.

문제

정수열 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N과 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N이 주어진다.

이진 트리 T0,T1,⋯ ,TNT_0, T_1, \cdots, T_N을 다음과 같이 정의한다.

  • T0T_0은 노드가 1개인 트리이다.
  • 1≤i≤N1 ≤ i ≤ N일 때 TiT_i는 루트의 왼쪽 자식을 루트로 하는 서브 트리가 TAiT_{A_i}이고, 루트의 오른쪽 자식을 루트로 하는 서브 트리가 TBiT_{B_i}인 트리이다 (0≤Ai≤i−10 ≤ A_i ≤ i - 1, 0≤Bi≤i−10 ≤ B_i ≤ i - 1).

S(T1),S(T2),⋯ ,S(TN)S(T_1), S(T_2), \cdots, S(T_N)을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 정수 NN이 주어진다. 다음 NN개의 줄 중 ii번째 줄에는 AiA_i와 BiB_i가 공백으로 구분되어 주어진다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 S(Ti)S(T_i)를 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N≤100 0001 ≤ N ≤ 100\,000
  • 0≤Ai≤i−10 ≤ A_i ≤ i - 1 (1≤i≤N1 ≤ i ≤ N)
  • 0≤Bi≤i−10 ≤ B_i ≤ i - 1 (1≤i≤N1 ≤ i ≤ N)

예제2

  1. 예제 1

    입력
    5
    0 0
    1 0
    1 2
    3 1
    4 4
    
    예상 출력
    3
    7
    21
    47
    254
    
  2. 예제 2

    입력
    7
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    
    예상 출력
    3
    13
    65
    337
    1729
    8641
    41985