Logo
(追記) (追記ここまで)

31966번 - 이진 트리 서브태스크

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB73534027953.346%

문제

모든 노드의 자식 노드가 0ドル$개 또는 2ドル$개인 이진 트리 $T$에 대해 $S(T)$의 값은 다음과 같이 정의한다.

  • $T$에서 노드 $u$를 루트로 하는 서브 트리는, $u$와 $u$의 자손 노드들로만 구성된 집합이다.
  • $T$의 중위 순회 수열 $p(T)$는 $T$를 중위 순회하면서 방문하는 노드들을 순서대로 나열한 수열로, 아래와 같이 정의할 수 있다.
    • $T$의 루트 노드를 $r$이라 하자. $[r]$을 $r$ 하나로만 구성된 길이 1ドル$의 수열이라고 하자.
    • 만약 $r$의 자식 노드가 0ドル$개라면, $p(T)$는 $[r]$이다.
    • 만약 $r$의 자식 노드가 2ドル$개라면, $r$의 왼쪽 자식 노드를 루트로 하는 서브 트리가 $X,ドル $r$의 오른쪽 자식 노드를 루트로 하는 서브 트리가 $Y$일 때, $p(T)$는 $p(X),ドル $[r],ドル $p(Y)$을 순서대로 이어붙인 수열이다.
  • $T$의 리프 노드 개수를 $k$라고 하자. $T$의 리프 노드들에 1,ドル 2, \cdots , k$의 번호를 $p(T)$에서 나타나는 순서대 로 (즉, 중위 순회 방문 순서대로) 붙였다고 하자.
  • $T$의 서브 트리를 선택하면, 해당 서브 트리에 포함된 리프 노드들이 덮인다고 하자.
  • 1ドル ≤ a ≤ b ≤ k$일 때, $f(a, b)$는 리프 노드들 중 번호가 $a$ 이상 $b$ 이하인 리프 노드들만을 덮고 다른 리프 노드들은 덮지 않기 위해, $T$에서 선택해야 하는 최소 서브 트리 개수이다.
  • $S(T)$의 값은 1ドル ≤ a ≤ b ≤ k$인 모든 $(a, b)$ 정수 순서쌍에 대한 $f(a, b)$의 합을 10ドル^9+7$로 나눈 나머지이다.

예를 들어, 다음과 같은 이진 트리 $T$가 있다고 가정해보자.

(a) 만든 트리 (b) 리프 노드에 번호를 붙인 트리

$f(5, 7)$의 값은 2ドル$이다. 다음과 같이 서브 트리 두 개를 선택하면 5ドル,ドル 6ドル,ドル 7ドル$번 리프 노드만 덮이기 때문이다.

이런 식으로 모든 1ドル ≤ a ≤ b ≤ 7$에 대해 $f(a, b)$의 값의 합은 47ドル$이고, 이를 10ドル^9 + 7$로 나눈 나머지를 구하면 $S(T) = 47$이다.


정수열 $A_1, A_2, \cdots , A_N$과 $B_1, B_2, \cdots , B_N$이 주어진다.

이진 트리 $T_0, T_1, \cdots , T_N$을 다음과 같이 정의한다.

  • $T_0$은 노드가 1ドル$개인 트리
  • $T_i$ 는 루트의 왼쪽 자식 노드를 루트로 하는 서브 트리가 $T_{A_i}$이고, 루트의 오른쪽 자식 노드를 루트로 하는 서브 트리가 $T_{B_i}$인 트리 (1ドル ≤ i ≤ N,ドル 0ドル ≤ A_i ≤ i - 1,ドル 0ドル ≤ B_i ≤ i - 1$)

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

입력

첫 번째 줄에 정수 $N$이 주어진다.

다음 $N$개의 줄 중 $i$ (1ドル ≤ i ≤ N$)번째 줄에는 $A_i$와 $B_i$가 공백으로 구분되어 주어진다.

출력

$N$개의 줄을 출력한다. $i$ (1ドル ≤ i ≤ N$)번째 줄에는 $S(T_i)$를 출력해야 한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1ドル ≤ N ≤ 100,円 000$
  • 0ドル ≤ A_i ≤ i - 1$ (1ドル ≤ i ≤ N$)
  • 0ドル ≤ B_i ≤ i - 1$ (1ドル ≤ i ≤ N$)

서브태스크

번호배점제한
15

$A_i = B_i = i - 1$ (1ドル ≤ i ≤ N$), $N ≤ 10$

210

$A_i = B_i = i - 1$ (1ドル ≤ i ≤ N$)

35

$A_i = i - 1,ドル $B_i = 0$ (1ドル ≤ i ≤ N$)

410

$T_1, T_2, \cdots , T_N$의 노드 개수의 합은 1ドル,円 000$ 이하

525

$T_1, T_2, \cdots , T_N$의 노드 개수의 합은 300ドル,円 000$ 이하

645

추가 제약 조건 없음.

예제 입력 1

5
0 0
1 0
1 2
3 1
4 4

예제 출력 1

3
7
21
47
254

위 예제에서 $T_4$는 아래 그림과 같다.

예제 입력 2

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

예제 출력 2

3
13
65
337
1729
8641
41985

힌트

출처

Olympiad > 한국정보올림피아드 > KOI 2024 1차대회 > 중등부 3번

Olympiad > 한국정보올림피아드 > KOI 2024 1차대회 > 고등부 2번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /