给 (n(leq 500))个点的树染 (m leq mod) 种颜色, 本质不同(颜色和形态)的染色数(对(998244353)取模),有根树。
- 如果是无根树就找重心。
重点在算树的同构:
设:某种子树有 (cnt) 个同构的, (f_v) 为这种子树的染色方案数。
[f_u = sum^{cnt}_ {i = 1} inom{cnt - 1}{i - 1} inom{f_v}{i}
]
-
同构的子树,方案只在意每种染色方案选的数量不同。
(inom{f_v}{i}) 为从(f_v)个染色方案里选(i)个不同的染色方案。
(inom{cnt - 1}{i - 1})为用插板法将 (cnt) 个同构子树分配给 (i) 个染色方案的个数,(每种染色方案选的数量非空)。
-
关于(f_v),由于lucas定理:
[inom{f_v}{i} mod p = inom{lfloorfrac{f_v}{p} floor}{lfloorfrac{i}{p} floor} imes inom{f_v mod p}{i mod p} ]当 (i < p) 时,就有
[inom{f_v}{i} mod p = inom{f_v mod p}{i} ]就能愉快的取模了。