[R59G]拓扑排序
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
时空限制
1S/512M
题目描述
给定一棵以 为根的有根树 ,树中有 个节点,边的方向均为从父亲指向儿子。
对于树中的每条边,你都可以选择保留或者删除。显然,对于这 条边,总共有 种不同的保留方案。
设某种方案下保留下来的边集为 。这些边与 个节点组成了一个有根森林 。
定义 为该森林 的拓扑序数量。即:由 组成的排列 的数量,满足如果在森林 中节点 是节点 的祖先,那么在排列 中 必须出现在 之前。
请你计算所有 种方案下 的总和对 取模后的值。即求:
格式
输入格式
第一行包含一个正整数 ,表示节点的数量。
第二行包含 个正整数 ,其中 ,表示 是 的父亲。
输出格式
输出一个整数,表示所有方案的拓扑序数量的和对 取模后的结果。
样例
样例输入 #1
4
1 2 2
样例输出 #1
78
样例输入 #2
7
1 2 1 1 2 5
样例输出 #2
59676
数据规模
| 子任务编号 | 分值 | 特殊性质 | |
|---|---|---|---|
| 无 | |||
| 无 | |||
对于 的数据,,。
代码源挑战赛 Round 59
- Status
- Done
- Rule
- DMY
- Start at
- 2026-5-1 20:00
- End at
- 2026-5-1 21:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 350