编程题
树的计数 ### 题目描述 我们知道一棵有根树可以进行深度优先遍历(DFS)以及广度优先遍历(BFS)来生成这棵树的 DFS 序以及 BFS 序。两棵不同的树的 DFS 序有可能相同,并且它们的 BFS 序也有可能相同,例如下面两棵树的 DFS 序都是 `1 2 4 5 3`,BFS 序都是 `1 2 3 4 5`。 ![图片描述](https://doc.shiyanlou.com/courses/uid1580206-20210707-1625671129062) 现给定一个 DFS 序和 BFS 序,我们想要知道,符合条件的有根树中,树的高度的平均值。即,假如共有 $K$ 棵不同的有根树具有这组 DFS 序和 BFS 序,且他们的高度分别是 $h_1, h_2, \ldots, h_K$,那么请你输出: $$ \frac{h_1+h_2+\ldots+h_K}K $$ ### 输入描述 第一行包含 $1$ 个正整数 $n$,表示树的节点个数。 第二行包含 $n$ 个正整数,是一个 $1 \ldots n$ 的排列,表示树的 DFS 序。 第三行包含 $n$ 个正整数,是一个 $1 \ldots n$ 的排列,表示树的 BFS 序。 输入保证至少存在一棵树符合给定的两个序列。 其中, $2 \le n \le 2 \times 10^5$。 ### 输出描述 输出 $1$ 个实数,四舍五入保留恰好三位小数,表示树高的平均值。 ### 输入输出样例 #### 示例 1 >输入 ```txt 5 1 2 4 5 3 1 2 3 4 5 ``` >输出 ```txt 3.500 ```
查看答案
赣ICP备20007335号-2