문제
모든 노드의 자식 노드가
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,\dots,k 의 번호를p(T) 에서 나타나는 순서대로 (즉, 중위 순회 방문 순서대로) 붙였다고 하자.T 의 서브 트리를 선택하면 해당 서브 트리에 포함된 리프 노드들이 덮인다고 하자.1 \le a \le b \le k 일 때,f(a,b) 는 리프 노드들 중 번호가a 이상b 이하인 리프 노드들만을 덮고 다른 리프 노드들은 덮지 않기 위해,T 에서 선택해야하는 최소 서브 트리 개수이다.S(T) 의 값은1 \le a \le b \le k 인 모든(a,b) 정수 순서쌍에 대한f(a,b) 의 합을10^9+7 로 나눈 나머지이다.
예를 들어, 다음과 같은 이진 트리가 있다고 가정해보자.
![](https://s.jungol.co.kr/board/1/1wgJk0JWIPDsfymqUc6VXD.webp)
![](https://s.jungol.co.kr/board/1/2R3navcpg07OcqxxsnKBkk.webp)
이런 식으로 모든
정수열
이진 트리
T_0 은 노드가1 개인 트리T_i 는 루트의 왼쪽 자식 노드를 루트로 하는 서브 트리가T_{A_i} 이고, 루트의 오른쪽 자식 노드를 루트로 하는 서브 트리가T_{B_i} 인 트리(1 \le i \le N, 0 \le A_i \le i-1, 0 \le B_i \le i-1 )
[제약 조건]
주어지는 모든 수는 정수이다.
1 \le N \le 100,000 0 \le A_i \le i-1 (1 \le i \le N) 0 \le B_i \le i-1 (1 \le i \le N)
입력
첫 번째 줄에 정수
다음
출력
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 5점 | |
#2 | 10점 | |
#3 | 5점 | |
#4 | 10점 | |
#5 | 25점 | |
#6 | 45점 | 추가 제약 조건 없음. |
예제1
5
0 0
1 0
1 2
3 1
4 4
3
7
21
47
254
위 예제에서
![](https://s.jungol.co.kr/board/1/25BXcdDwfjwZpuT4yBlLBe.webp)
예제2
7
0 0
1 1
2 2
3 3
4 4
5 5
6 6
3
13
65
337
1729
8641
41985