DZY Loves Connecting

Accepts: 7
Submissions: 77
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
DZY有一棵$n$个结点的无根树,结点按照$1\sim n$标号。

DZY喜欢树上的连通集。一个连通集$S$是由一些结点组成的集合,满足$S$中任意两个结点$u,v$能够用树上的路径连通,且路径上不经过$S$之外的结点。显然,单独一个结点的集合也是连通集。

一个连通集的大小定义为它包含的结点个数,DZY想知道所有连通集的大小之和是多少。你能帮他数一数吗?

答案可能很大,请对$10^9 + 7$取模后输出。
输入描述
第一行$t$,表示有$t$组数据。
接下来$t$组数据。每组数据第$1$行一个数$n$。第$2\sim n$行中,第$i$行包含一个数$p_i$,表示$i$与$p_i$有边相连。($1\le p_i \le i-1,2\le i\le n$)

($n\ge 1$,所有数据中的$n$之和不超过$200000$)
输出描述
每组数据输出一行答案,对$10^9 + 7$取模。
输入样例
2
1
5
1
2
2
3
输出样例
1
42
Hint
第二个样例中,树的4条边分别为(1,2),(2,3),(2,4),(3,5)。所有连通集分别是{1},{2},{3},{4},{5},{1,2},{2,3},{2,4},{3,5},{1,2,3},{1,2,4},{2,3,4},{2,3,5},{1,2,3,4},{1,2,3,5},{2,3,4,5},{1,2,3,4,5}。

If you need a larger stack size, please use #pragma comment(linker, "/STACK:102400000,102400000") and submit your solution using C++.