생물 연구
시간 제한1초메모리 제한1024 MB
같은 세대의 YJ를 두 개 이상 골라 모든 쌍의 최소 공통 조상이 같은 집합의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
괴짜 생물학자 정후는 단세포생물 YJ (Yeonguk Jo)를 연구한다. 정후는 YJ 1마리를 배양해서 YJ 마리를 추가로 얻었다. 마리의 YJ 가계도는 트리를 이룬다. 초기 배양에 쓰인 YJ를 제외한 모든 YJ는 정확히 1마리의 부모를 가진다. 부모가 없는 YJ는 루트라고 부르며, 어떤 YJ의 세대는 가계도에서 루트까지의 거리로 정의한다. 서로 다른 두 YJ의 최소 공통 조상은 가계도에서 정의한 최소 공통 조상을 뜻한다.
정후는 실험에 쓸 YJ 몇 마리를 고르려고 한다. 선택한 YJ의 집합을 라고 할 때, 다음 조건을 만족해야 한다.
- 대조군과 실험군을 나누려면 이어야 한다.
- 의 모든 원소는 같은 세대여야 한다.
- 에서 서로 다른 임의의 두 원소의 최소 공통 조상은 모두 같아야 한다.
정후는 이런 집합이 몇 개 있는지 알고 싶어 한다. 가능한 집합의 개수를 로 나눈 나머지를 구하라.
입력
첫 번째 줄에 정수 이 주어진다.
두 번째 줄에 개의 정수 이 주어진다. 이면 번 YJ가 루트라는 뜻이다. 그 외의 경우, 이면 번 YJ의 부모가 번 YJ라는 뜻이다.
출력
첫 번째 줄에 가능한 YJ 집합의 개수를 로 나눈 나머지를 출력한다.
제한
- 인 모든 에 대해