P15658 [ICPC 2025 Jakarta R] Count DFS Graph
题目描述
你正在研究一种名为 **深度优先搜索**(DFS)的图遍历算法。从一个空列表 $\texttt{A}$ 开始,下面的伪代码将用 DFS 算法的访问顺序填充列表 $\texttt{A}$。
```
DFS(v):
append v to A
for each u neighbour of v in ascending node number:
if u is not in A:
DFS(u)
```
运行上述伪代码中的 $\texttt{DFS(1)}$ 后,你现在得到了一个包含 $1$ 到 $N$ 整数排列的列表 $A$。你现在想知道,有多少个不同的、具有 $N$ 个节点的简单无向图,能够产生你手中的列表 $A$。请计算这个数量,并对 $998\,244\,353$ 取模。
当图中没有自环,且每对节点之间最多只有一条边时,该图是简单的。如果在一个图中存在连接某对节点的边,而在另一个图中不存在,则认为这两个图是不同的。
输入格式
第一行包含一个整数 $N$($2 \le N \le 300$)。
第二行包含前 $N$ 个正整数的排列,代表列表 $A$。
保证 $A$ 的第一个元素是 $1$。
输出格式
输出一个整数,表示能够产生列表 $A$ 的不同图的数量,对 $998\,244\,353$ 取模。
说明/提示
**样例 1 解释:** 下图展示了所有能产生给定 DFS 顺序的图。
:::align{center}

:::
翻译由 DeepSeek V3.2 完成