#P13077. [AGC056F] Degree Sequence in DFS Order

    ID: 12261 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 9 上传者: 标签>CF2800组合数学数学模运算生成函数构造多项式计数DP

[AGC056F] Degree Sequence in DFS Order

题目描述

已知整数 N,MN,M, 求有多少个整数序列 a=(a1,a2,,aN)a=(a_1,a_2,\cdots,a_N) 可以由以下方式生成,答案对 998244353998244353 取模。

  • 选择一个 NN 个点,MM 条边的无向连通图 GG,要求无自环,但可以有重边。
  • 进行 DFS,令 aia_i 表示遍历到的第 ii 个点的度数,具体的,执行以下代码:
a = empty array

dfs(v):
    visited[v]=True
    a.append(degree[v])
    for u in g[v]:
        if not visited[u]:
            dfs(u)

dfs(arbitrary root)

这里,gg 是图 GG 的邻接表,g[v]g[v] 是任意顺序的与 vv 相连的顶点列表。

举个例子,对于 N=4,M=5N=4,M=5,一个可能的 a=(2,4,1,3)a=(2,4,1,3),图 GG 如下图所示:

G

顶点上的数字表示访问他们的顺序,橙色箭头表示遍历时经过的边。

输入格式

一行两个数 N,MN,M

输出格式

一行一个数,表示答案。

样例解释 1\textbf 1

只有 a=(2,2)a=(2,2) 合法。

输入输出样例 #1

输入 #1

2 2

输出 #1

1

输入输出样例 #2

输入 #2

3 4

输出 #2

9

输入输出样例 #3

输入 #3

10 20

输出 #3

186225754

输入输出样例 #4

输入 #4

100000 1000000

输出 #4

191021899

说明/提示

  • 2NM1062\le N\le M\le 10^6