题意
求 n n n个碳原子的烷基的同分异构体数目。
简单版
n ≤ 500 n\le500 n≤500
要求的是每个点的度数不大于 4 4 4且根节点的度数不大于 3 3 3的无标号有根树数量。
设 f i f_i fi表示有 i i i个碳原子的烷基数目,枚举两个子树的大小算贡献即可。
时间复杂度 O ( n 3 ) O(n^3) O(n3)
加强版
n ≤ 5000 n\le5000 n≤5000
设 f k , i , j f_{k,i,j} fk,i,j表示有 i i i个碳原子,且根的度数为 j j j且最大子树大小不超过 k k k的烷基数量。
转移的时候枚举当前的树有多少棵大小为 k k k的子树。
不难发现第一维可以省略。
时间复杂度 O ( n 2 ) O(n^2) O(n2)
加强版 加强版
n ≤ 100000 n\le100000 n≤100000
考虑求出Polya定理的生成函数。
这里的颜色数量相当于烷基个数,权重相当于烷基的点数。
置换群为 3 3 3的全排列即 S 3 S_3 S3,显然其循环节指标生成函数为 Z S 3 ( t 1 , t 2 , t 3 ) = t 1 3 + 3 t 1 t 2 + 2 t 3 6 Z_{S_3}(t_1,t_2,t_3)=\frac{t_1^3+3t_1t_2+2t_3}{6} ZS3(t1,t2,t3)=6t13+3t1t2+2t3
设答案的生成函数为 F ( x ) F(x) F(x),则 F ( x ) = 1 + x Z S 3 ( F ( x ) , F ( x 2 ) , F ( x 3 ) ) F(x)=1+xZ_{S_3}(F(x),F(x^2),F(x^3)) F(x)=1+xZS3(F(x),F(x2),