「多项式」烷基计数、烯烃计数、烷烃计数

烷基计数

题目链接:LOJ 6538 烷基计数 2×加强版

对于 \(n=1\sim N\),求 \(n\) 个碳原子的烷基的同分异构体数,不考虑空间异构。

\(1\le N\le 10^5\)

题解

根据有机化学知识,我们要求的就是有多少个 \(n\) 个点的无标号有根树,满足根的度数 \(\le 3\),其余点度数 \(\le 4\)

\(F(x)\) 表示答案(其中 \(f_0=1\),表示空),问题在于直接 \(F(x)=xF^3(x)\) 会把同构的树多次计数。考虑利用 burnside 引理,设根的三个子树分别为 \(T_1,T_2,T_3\),有 \(3!=6\) 种置换群,因此可得:

\[F(x)=x\frac{F^3(x)+3F(x)F(x^2)+2F(x^3)}{6} \]

用牛顿迭代求解即可,时间复杂度 \(\mathcal O(n\log n)\)


烯烃计数

题目链接:洛谷 P6597 烯烃计数

对于 \(n=1\sim N\),求 \(n\) 个碳原子的烯烃的同分异构体数,不考虑空间异构。

\(1\le N\le 10^5\)

题解

考虑碳碳双键的这条“关建边”,相当于这条边左右两边分别做“烷基计数”,然后再合并起来。

因此,合并的部分再用一次 burnside 引理。令 \(G(x)\) 表示答案,则:

\[G(x)=\frac{(F(x)-1)^2+F(x^2)-1}{2} \]

时间复杂度 \(\mathcal O(n\log n)\)


烷烃计数

题目链接:洛谷 P6598 烷烃计数LOJ 6512 「雅礼集训 2018 Day 8」C

对于 \(n=1\sim N\),求 \(n\) 个碳原子的烷烃的同分异构体数,不考虑空间异构。

\(1\le N\le 10^5\)

题解

根据有机化学知识,我们要求的就是有多少个 \(n\) 个点的无标号无根树,满足每个点度数 \(\le 4\)

考虑拎起树的重心为根(在 \(n\) 为偶数时,可能无根树有两个重心,会算 \(2\) 次),用容斥的方法计算:总方案减去存在一个子树 \(\mathrm{size}> \frac{n}{2}\)。令前者为 \(G(x)\),则用 burnside 引理可得:

\[G(x)=x\frac{F^4(x)+6F^2(x)F(x^2)+8F(x)F(x^3)+3F^2(x^2)+6F(x^4)}{24} \]

令答案为 \(H(x)\),枚举这个“大子树”的 \(\mathrm{size}\),则 \(h_n=g_n-\sum\limits_{i=\frac{n}{2}+1}^{n-1}f_if_{n-i}-[2|n]\binom{f_{n/2}}{2}\)

容易卷积优化计算 \(H(x)\),时间复杂度 \(\mathcal O(n\log n)\)

posted @ 2022-05-29 11:23  wlzhouzhuan  阅读(833)  评论(2编辑  收藏  举报