树的同构

\(n(\leq 500)\)个点的树染 \(m \leq mod\) 种颜色, 本质不同(颜色和形态)的染色数(对\(998244353\)取模),有根树。

  • 如果是无根树就找重心。

重点在算树的同构:

设:某种子树有 \(cnt\) 个同构的, \(f_v\) 为这种子树的染色方案数。

\[f_u = \sum^{cnt}_ {i = 1} \binom{cnt - 1}{i - 1} \binom{f_v}{i} \]

  • 同构的子树,方案只在意每种染色方案选的数量不同。

    \(\binom{f_v}{i}\) 为从\(f_v\)个染色方案里选\(i\)个不同的染色方案。

    \(\binom{cnt - 1}{i - 1}\)为用插板法将 \(cnt\) 个同构子树分配给 \(i\) 个染色方案的个数,(每种染色方案选的数量非空)。

  • 关于\(f_v\),由于lucas定理:

    \[\binom{f_v}{i} \mod p = \binom{\lfloor\frac{f_v}{p}\rfloor}{\lfloor\frac{i}{p}\rfloor} \times \binom{f_v \mod p}{i \mod p} \]

    \(i < p\) 时,就有

    \[\binom{f_v}{i} \mod p = \binom{f_v \mod p}{i} \]

    就能愉快的取模了。

posted @ 2021-10-19 10:25  qjbqjb  阅读(125)  评论(0编辑  收藏  举报