问题 5034 --树上排列

5034: 树上排列

题目描述

  有一棵点数为 $n$ 的树,点被标号为 $1\sim n$。
现在你需要给每个 $i$ 号点一个权值 $p_i$,并且满足 $p_1 \sim p_n$ 是一个 $1 \sim n$ 的排列。
同时树上每条边上有一个比较器,能够告诉你树上的每条边的两个端点的权值哪个更大,你还需要满足这 $n-1$ 比较器的结果。
请你求出有多少种不同的赋权值方案,对 $998244353$ 取模。

输入

第一行一个整数 $n$ 表示点数。
接下来 $n-1$ 行,每行两个整数 $u,v$,表示了一条边 $(u,v)$,同时表示了这条边的比较器的结果是 $p_u<p_v$。

输出

输出一行一个整数表示答案,对 $998244353$ 取模。

样例输入输出

输入#1 复制
2
1 2
输出#1 复制
1
输入#2 复制
3
1 2
3 2
输出#2 复制
2
输入#3 复制
9
1 2
2 3
4 3
4 5
5 6
7 6
8 7
8 9
输出#3 复制
2051
输入#4 复制
9
1 2
1 3
2 4
4 5
3 6
4 7
2 8
2 9
输出#4 复制
1120

提示

样例解释 1
  $1,2$号点的权值只能为 $1,2$。


样例解释 2
$1,2,3$ 号点的权值可以为 $1,3,2$ 或 $2,3,1$。


数据由以下三种类型组成
类型 A:保证给定的树是一条链。
类型 B:保证如果以 1 为根,则始终是父亲的权值比儿子小。
类型 C:无特殊限制。
对于所有数据,$1 \leq n \leq 3000$。

序号 标题 作者 发表时间 费用 订购数 操作