Codeforces Round 275 (Div. 1)
D
Random Function and Tree
Codeforces
2700
原题
← CE →
翻译中…

You have a rooted tree consisting of $*n*$ vertices. Let's number them with integers from $1$ to $*n*$ inclusive. The root of the tree is the vertex $1$. For each $*i* > 1$ direct parent of the vertex $*i*$ is $*p*_{*i*}$. We say that vertex $*i*$ is child for its direct parent $*p*_{*i*}$.

翻译中…

You have initially painted all the vertices with red color. You like to repaint some vertices of the tree. To perform painting you use the function paint that you call with the root of the tree as an argument. Here is the pseudocode of this function:

翻译中…

count = 0 // global integer variable

rnd() { // this function is used in paint code
    return 0 or 1 equiprobably
}

paint(s) {
    if (count is even) then paint s with white color
    else paint s with black color

    count = count + 1

    if rnd() = 1 then children = [array of vertex s children in ascending order of their numbers]
    else children = [array of vertex s children in descending order of their numbers]

    for child in children { // iterating over children array
        if rnd() = 1 then paint(child) // calling paint recursively
    }
}

翻译中…

As a result of this function, some vertices may change their colors to white or black and some of them may remain red.

翻译中…

Your task is to determine the number of distinct possible colorings of the vertices of the tree. We will assume that the coloring is possible if there is a nonzero probability to get this coloring with a single call of $*paint*(1)$. We assume that the colorings are different if there is a pair of vertices that are painted with different colors in these colorings. Since the required number may be very large, find its remainder of division by $1000000007$ ($10^{9} + 7$).

翻译中…

Input

翻译中…

The first line contains a single integer $*n*$ ($2 ≤ *n* ≤ 10^{5}$) — the number of vertexes in the tree.

翻译中…

The second line contains $*n* - 1$ integers $*p*_{2}, *p*_{3}, ..., *p*_{*n*}$ ($1 ≤ *p*_{*i*} < *i*$). Number $*p*_{*i*}$ is the parent of vertex $*i*$.

翻译中…

Output

翻译中…

Print a single integer — the answer to the problem modulo $1000000007$ ($10^{9} + 7$)

翻译中…

Note

翻译中…

All possible coloring patterns of the first sample are given below.

翻译中…

image

翻译中…

样例

Input #1
4
1 2 1
Output #1
8
InputCopy OutputCopy
Input #2
3
1 1
Output #2
5
InputCopy OutputCopy
题目信息
题号
482D
时间限制
1 s
内存限制
256 MB
标签
组合数学
动态规划
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。