题意
给定一棵树,满足其 DFS 序为 $1\sim n$,对满足如下条件的序列 $a$ 计数。
- 长为 $c$。
- $\forall i\text{ < } j,a_i\notin \text{subtree}(a_j)$。
- $a_i\leq n-i+1$。
对每个 $1\leq c\leq n$ 求出答案,对 $998244353$ 取模,$1\leq n\leq 80$。
题解
容易发现只有后缀最大值会受到限制 $3$,且后缀最大值不会受到限制 $2$。
考虑 DP,从大到小填入数字,并依次确定每个数字的具体下标。一个数字是后缀最大值当且仅当其填入到了所有数字的后面。
令 $f_{i,j,k}$ 表示填入了 $[i,n]$,所有数下标最大值为 $j$,一共填入了 $k$ 个数字。
讨论转移:
- $i$ 不选择:$f_{i,j,k}\gets f_{i+1,j,k}$。
- $i$ 选择,作为后缀最大值:$f_{i,j',k}\gets f_{i+1,j,k}\quad (j\text{ < }j'\leq n-i+1)$。
- $i$ 选择,不作为后缀最大值:$f_{i,j,k+x}\gets f_{i+sz_i,j,k}\times \binom{j-k}{x}\times G_{i,x}\quad (1\leq x\leq \min(sz_i,j-k))$,其中 $G_{i,x}$ 表示子树 $i$ 内选出 $x$ 个点的拓扑序方案数总和。
$G$ 是容易计算的,复杂度 $O(n^4)$。