CF482D.Random Function and Tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You have a rooted tree consisting of nn vertices. Let's number them with integers from 11 to nn inclusive. The root of the tree is the vertex 11 . For each i>1i>1 direct parent of the vertex ii is pip_{i} . We say that vertex ii is child for its direct parent pip_{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)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 10000000071000000007 ( 109+710^{9}+7 ).

输入格式

The first line contains a single integer n(2n105)n (2 \leq n \leq 10^5) — the number of vertexes in the tree.

The second line contains n1n - 1 integers p2,p3,...,pn(1pi<i)p _ 2, p _ 3, ..., p _ n (1 \leq p _ i < i). Number pip _ i is the parent of vertex ii.

输出格式

Print a single integer — the answer to the problem modulo 10000000071000000007 ( 109+710^{9}+7 )

输入输出样例

  • 输入#1

    4
    1 2 1
    

    输出#1

    8
    
  • 输入#2

    3
    1 1
    

    输出#2

    5
    

说明/提示

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

首页