만드는 중입니다

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

진화 알고리즘

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

요약
b가 a의 조상이고 c의 조상은 아닌 순서쌍 (a, b, c) 중 S_b가 S_a와 S_c의 K배 이상 (+1)인 경우의 수를 셉니다.
난이도

보통10점 중 7점

유형
트리, DFS, 이분 탐색, 정렬
정답자
아직 제출이 없습니다

문제

Ada는 학교 과학 프로젝트를 준비하고 있다. 그녀는 진화를 연구하며, 서로 다른 종의 생물이 코딩 대회 문제를 얼마나 잘 푸는지 비교하고 싶어 한다.

종은 1부터 N\mathbf{N}까지 번호가 매겨져 있다. 1번 종은 직접 조상이 없고, 나머지 모든 종은 직접 조상이 정확히 한 명씩 있으며 그 조상으로부터 진화했다. 종 xx의 조상(직접 또는 간접)은 xx에서 직접 조상으로 거슬러 올라가 도달할 수 있는 다른 종 yy이다. 따라서 1번 종은 다른 모든 종의 조상이다.

각 종 ii는 어떤 코딩 대회에서의 평균 점수 S_i\mathbf{S\_i}를 가진다. Ada는 이 점수들을 유전 시뮬레이션으로 계산했다.

흥미로운 세쌍은 다음 조건을 만족하는 서로 다른 종의 순서쌍 (a,b,c)(a, b, c)이다.

  1. 종 bb는 종 aa의 조상이다.
  2. 종 bb는 종 cc의 조상이 아니다.
  3. 종 bb의 평균 점수가 aa와 cc의 점수보다 K\mathbf{K}배 넘게 크다. 즉 S_b≥K×max⁡(S_a,S_c)+1\mathbf{S\_b} \ge \mathbf{K} \times \max(\mathbf{S\_a}, \mathbf{S\_c}) + 1이다.

흥미로운 세쌍의 개수를 구하라.

입력

첫 줄에 테스트 케이스의 개수 T\mathbf{T}가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.

첫 줄에 두 정수 N\mathbf{N}과 K\mathbf{K}가 주어진다.

둘째 줄에 N\mathbf{N}개의 정수 S_1,S_2,…,S_N\mathbf{S\_1}, \mathbf{S\_2}, \dots, \mathbf{S\_N}이 주어진다.

셋째 줄에 N−1\mathbf{N}-1개의 정수 P_2,P_3,…,P_N\mathbf{P\_2}, \mathbf{P\_3}, \dots, \mathbf{P\_N}이 주어진다. P_i\mathbf{P\_i}는 종 ii의 직접 조상이다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 흥미로운 세쌍의 총 개수이다.

제한

  • 1≤T≤1001 \le \mathbf{T} \le 100.
  • 1≤K≤1091 \le \mathbf{K} \le 10^9.
  • 모든 ii에 대해 1≤S_i≤1091 \le \mathbf{S\_i} \le 10^9.
  • 모든 ii에 대해 1≤P_i≤N1 \le \mathbf{P\_i} \le \mathbf{N}.
  • 1번 종은 다른 모든 종의 (직접 또는 간접) 조상이다.

힌트

예제 1번에서 흥미로운 세쌍은 (5,3,4)(5, 3, 4) 하나뿐이다. 종 3은 종 5의 조상이고, 종 4의 조상은 아니다. 또한 6=S_3≥K×max⁡(S_4,S_5)+1=2×max⁡(2,2)+1=56 = \mathbf{S\_3} \ge \mathbf{K} \times \max(\mathbf{S\_4}, \mathbf{S\_5}) + 1 = 2 \times \max(2, 2) + 1 = 5이다.

예제 2번에서 흥미로운 세쌍은 모두 7개이다.

  • (4,3,1)(4, 3, 1)
  • (4,3,6)(4, 3, 6)
  • (4,7,1)(4, 7, 1)
  • (4,7,5)(4, 7, 5)
  • (4,7,6)(4, 7, 6)
  • (5,3,1)(5, 3, 1)
  • (5,3,6)(5, 3, 6)

예제1

  1. 예제 1

    입력
    2
    5 2
    3 3 6 2 2
    3 1 1 3
    7 3
    2 4 7 2 2 1 8
    6 1 7 3 1 3
    
    예상 출력
    Case #1: 1
    Case #2: 7