트리의 아름다움
메모리 제한1024 MB
루트가 있는 트리에서 두 사람이 각각 무작위로 고른 노드에서 시작해 A번째(또는 B번째) 조상마다 루트까지 칠할 때, 적어도 한 번 칠해지는 노드 수의 기댓값을 구한다.
문제
Amadea와 Bilva는 1번부터 N번까지 번호가 붙은 N개의 노드로 이루어진 루트 있는 트리를 꾸미려고 한다. 1번 노드가 트리의 루트이고, 나머지 모든 노드의 부모는 자신보다 번호가 작은 노드이다.
Amadea와 Bilva는 트리를 다음과 같이 꾸민다.
- Amadea는 트리의 노드 하나를 균등한 확률로 고르고 칠한다. 그런 다음 루트에 도달할 때까지 트리를 거슬러 올라가며 A번째 노드마다 칠한다.
- Bilva는 트리의 노드 하나를 균등한 확률로 고르고 칠한다. 그런 다음 루트에 도달할 때까지 트리를 거슬러 올라가며 B번째 노드마다 칠한다.
트리의 아름다움은 Amadea와 Bilva 중 적어도 한 명이 한 번 이상 칠한 노드의 수이다. 두 사람이 모두 칠한 노드라도 한 번만 센다.
트리의 기댓값 아름다움은 얼마인가?
입력
입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. T개의 테스트 케이스가 이어진다. 각 테스트 케이스의 첫 줄에는 세 정수 N, A, B가 주어진다. 둘째 줄에는 N-1개의 정수가 주어진다. i번째 정수는 i+1번 노드의 부모이다.
출력
각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고 y는 트리의 기댓값 아름다움이다.
y는 정답과의 절대 오차 또는 상대 오차가 10-6 이내이면 정답으로 인정된다.
제한
- 1 ≤ T ≤ 100.
- 1 ≤ A ≤ N.
- 1 ≤ B ≤ N.
힌트
각 예제 케이스의 트리는 아래 그림에 나와 있다.
예제 케이스 #1에 대한 몇 가지 색칠 예시는 다음과 같다.
- Amadea가 5번 노드를 고르고 Bilva가 8번 노드를 고르면 두 사람은 모두 4개의 서로 다른 노드를 칠한다. Amadea는 5번과 3번 노드를 칠하고, Bilva는 8번과 1번 노드를 칠한다.
- Amadea가 7번 노드를 고르고 Bilva가 6번 노드를 고르면 두 사람은 모두 3개의 서로 다른 노드를 칠한다. Amadea는 7번과 1번 노드를 칠하고, Bilva는 6번과 1번 노드를 칠한다(Amadea도 1번 노드를 칠했음에 유의).