#P17164. [CEOI 2026] DFS

[CEOI 2026] DFS

题目描述

你可能已经熟悉著名的 DFS(深度优先搜索)图遍历算法。本题只考虑连通无向简单图(不含自环和重边),其顶点编号为 0,1,…,n−10,1,\ldots,n-1。DFS 算法按如下方式输出深度和顶点:

DFS(d, v):
    output d/v
    mark vertex v as visited
    W = the list of neighbors of v ordered by increasing numbers
    for each w in W:
        if vertex w has not yet been visited:
            DFS(d + 1, w)

编写一个程序,输出满足如下条件的不同图的数量:调用 DFS(0,n-1) 时,其输出与输入给定的输出完全相同。例如,输出

0/2
1/0 
2/1 

可以由以下两个连通无向简单 33 顶点图中的任意一个调用 DFS(0,2) 得到:

:::align{center} :::

输入格式

输入内容是对某个未知的 nn 顶点连通无向简单图调用 DFS(0,n-1) 所得到的输出。因此,输入共包含 nn 行,每行格式为 d/v,第一行为 0/(n-1)。

输出格式

输出满足要求的不同图的数量。由于答案可能非常大,请输出其对 1 000 000 0071\,000\,000\,007 取模后的结果。

0/2
1/0
2/1
2

提示

【限制条件】

  • 1≤n≤2×1051\le n\le 2\times 10^5

【子任务】

  • 子任务 11(1010 分):n≤6n\le 6。
  • 子任务 22(2020 分):n≤500n\le 500。
  • 子任务 33(2020 分):n≤104n\le 10^4。
  • 子任务 44(1010 分):对于每个 i∈{2,…,n}i\in\{2,\ldots,n\},输入的第 ii 行均为 (i−1)/(i−2)(i-1)/(i-2)。
  • 子任务 55(2020 分):对于每个 i∈{2,…,n}i\in\{2,\ldots,n\},输入的第 ii 行均为 (i−1)/v(i-1)/v,其中某个 v∈{0,…,n−2}v\in\{0,\ldots,n-2\}。
  • 子任务 66(2020 分):无额外限制。

翻译由 ChatGPT-5.6 完成