时空限制
1S/512M
题目描述
给定一棵以 1 为根的有根树 T,树中有 n 个节点,边的方向均为从父亲指向儿子。
对于树中的每条边,你都可以选择保留或者删除。显然,对于这 n−1 条边,总共有 2n−1 种不同的保留方案。
设某种方案下保留下来的边集为 S。这些边与 n 个节点组成了一个有根森林 TS。
定义 F(TS) 为该森林 TS 的拓扑序数量。即:由 1,2,…,n 组成的排列 p1,p2,…,pn 的数量,满足如果在森林 TS 中节点 u 是节点 v 的祖先,那么在排列 p 中 u 必须出现在 v 之前。
请你计算所有 2n−1 种方案下 F(TS) 的总和对 998244353 取模后的值。即求:
S∑F(TS)mod998244353
格式
输入格式
第一行包含一个正整数 n,表示节点的数量。
第二行包含 n−1 个正整数 f2,f3,⋯fn,其中 fi<i,表示 fi 是 i 的父亲。
输出格式
输出一个整数,表示所有方案的拓扑序数量的和对 998244353 取模后的结果。
样例
样例输入 #1
4
1 2 2
样例输出 #1
78
样例输入 #2
7
1 2 1 1 2 5
样例输出 #2
59676
数据规模
| 子任务编号 |
分值 |
n≤ |
特殊性质 |
| 1 |
10 |
10 |
无 |
| 2 |
15 |
5000 |
fi=i−1 |
| 3 |
15 |
fi=1 |
| 4 |
20 |
300 |
无 |
| 5 |
40 |
5000 |
对于 100% 的数据,2≤n≤5000,1≤fi<i。