那么定义 f_{i,j} 表示在 i 行 m 列的网格中,根节点在第一行且总节点数为 j 个的总方案数。
边界很显然,当只有一个根节点时一共有 m 种方案,即 f_{i,1}=m。
目标也很显然,所以情况相加即为答案:
\sum_{i=1}^n\sum_{j=1}^{n\times m}f_{i,j}
接下来我们看转移。
对于每一个 f_{i,j},枚举第 i 行的节点数量相加即可。当该行有 k 个节点时,这 k 个节点有不同的位置选择,即从 m 个格子中选择 k 个,即 \binom{m}{k},对于每个节点而言,其可以选择任意一个之前行的节点作为自己的父亲,因为共有 j-k 种选择,一共 k 个节点,一共就是 (j-k)^k 种选择。那么转移式即: