102526: [AtCoder]ABC252 G - Pre-Order
Description
Score : $600$ points
Problem Statement
There is a rooted tree with $N$ vertices called Vertex $1$, $2$, $\ldots$, $N$, rooted at Vertex $1$.
We performed a depth-first search starting at the root and obtained a preorder traversal of the tree: $P_1, P_2, \ldots, P_N$.
During the search, when the current vertex had multiple children, we chose the unvisited vertex with the smallest index.
What is a preorder traversal?
We start at the root and repeat the following procedure to list the vertices of the tree.Find the number of rooted trees consistent with the preorder traversal, modulo $998244353$.
Two rooted trees (with $N$ vertices and rooted at Vertex $1$) are considered different when there is a non-root vertex whose parent is different in the two trees.
Constraints
- $2 \leq N \leq 500$
- $1 \leq P_i\leq N$
- $P_1=1$
- All $P_i$ are distinct.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
$N$ $P_1$ $P_2$ $\ldots$ $P_N$
Output
Print the number of rooted trees consistent with the preorder traversal, modulo $998244353$.
Sample Input 1
4 1 2 4 3
Sample Output 1
3
The rooted trees consistent with the preorder traversal are the three shown below, so the answer is $3$.
Note that the tree below does not count. This is because, among the children of Vertex $2$, we visit Vertex $3$ before visiting Vertex $4$, resulting in the preorder traversal $1,2,3,4$.
Sample Input 2
8 1 2 3 5 6 7 8 4
Sample Output 2
202
Input
题意翻译
存在一棵 $ n $ 个点的树,给定序列 $ P_n $ 表示树的先序遍历,特别地,已知当一个节点有多个儿子的时候会优先遍历编号较小的儿子。求满足条件的树的方案数。对 $ 998244353 $ 取模。Output
什么是先序遍历?
我们从根节点开始,重复以下过程来列出树的顶点。- $2 \leq N \leq 500$
- $1 \leq P_i\leq N$
- $P_1=1$
- 所有$P_i$都不同。
- 输入中的所有值都是整数。