만드는 중입니다

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

생물 연구

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

요약
같은 세대의 YJ를 두 개 이상 골라 모든 쌍의 최소 공통 조상이 같은 집합의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

괴짜 생물학자 정후는 단세포생물 YJ (Yeonguk Jo)를 연구한다. 정후는 YJ 1마리를 배양해서 YJ N−1N-1마리를 추가로 얻었다. NN마리의 YJ 가계도는 트리를 이룬다. 초기 배양에 쓰인 YJ를 제외한 모든 YJ는 정확히 1마리의 부모를 가진다. 부모가 없는 YJ는 루트라고 부르며, 어떤 YJ의 세대는 가계도에서 루트까지의 거리로 정의한다. 서로 다른 두 YJ의 최소 공통 조상은 가계도에서 정의한 최소 공통 조상을 뜻한다.

정후는 실험에 쓸 YJ 몇 마리를 고르려고 한다. 선택한 YJ의 집합을 SS라고 할 때, 다음 조건을 만족해야 한다.

  • 대조군과 실험군을 나누려면 ∣S∣≥2|S| \ge 2이어야 한다.
  • SS의 모든 원소는 같은 세대여야 한다.
  • SS에서 서로 다른 임의의 두 원소의 최소 공통 조상은 모두 같아야 한다.

정후는 이런 집합이 몇 개 있는지 알고 싶어 한다. 가능한 집합의 개수를 109+710^9+7로 나눈 나머지를 구하라.

입력

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

두 번째 줄에 NN개의 정수 P1,P2,…,PNP_1, P_2, \ldots, P_N이 주어진다. Pi=−1P_i = -1이면 ii번 YJ가 루트라는 뜻이다. 그 외의 경우, Pi=jP_i = j이면 ii번 YJ의 부모가 jj번 YJ라는 뜻이다.

출력

첫 번째 줄에 가능한 YJ 집합의 개수를 109+710^9+7로 나눈 나머지를 출력한다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • P1=−1P_1 = -1
  • 2≤i≤N2 \le i \le N인 모든 ii에 대해 1≤Pi<i1 \le P_i < i

예제1

  1. 예제 1

    입력
    6
    -1 1 1 3 3 2
    
    예상 출력
    4