1 条题解
-
0
自动搬运
来自洛谷,原作者为

Zi_Gao
Do not go gentle into that good night. | www.zigao.ac搬运于
2025-08-24 22:22:17,当前版本为作者最后更新于2025-05-01 22:55:11,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
0x00 有机物
不会化学?没关系哦,我也不会。本人在化学月考和期中考试中分别获得了 37/100 和 61/100 的成绩。你只需要知道:
- 键:链接两个原子的东西,对应 OI 中的边。XY 键就是连接 X 原子和 Y 原子的键,可以同时链几根键,变成 XY 双键、三键等。
- 碳原子:必须要连 4 根键,不能连自己但是两个碳原子可以连多根键。
- 氢原子:只能连 1 根键。
- 烷烃:每个碳原子都连了 4 根键,所有的碳碳都是单键。实际上有环的也叫烷烃,但是这次我们只考虑链状烷烃,形态是 OI 里面的一棵树,那么烷烃的通式为 。
- 烷基:去掉一个碳的一个氢原子,烷基的通式为 。
- 烯烃:有一个碳碳双键,这两个碳原子又分别链接了两个烷基。
- 同分异构体:有相同分子式,但是结构不同的有机物,对应 OI 中的无标号树同构问题。
0x01 烷基计数
想一下去掉了一个氢原子的那个碳给我们带来了什么?答案是,把一个无根树变成一个有根树。我们把这个有机物从这个没连接的碳键拎起来,那么这个无根树就变成了每个非叶子点都链接了三个儿子。
设 是答案的生成函数,考虑每次把三个儿子填进去的方案数,要考虑是否同构所以用 Burnside 引理。枚举 6 种置换:
- :三个置换环,三个都任意,答案 。
- :有两个儿子相同,一个任意,答案 。
- :三个都相同,答案 。
全部加起来取平均数:
使用牛顿迭代求解,首先令
$$G(x,F(x))=F(x)-\frac{x}{6}(F^3(x)+3F(x^2)F(x)+2F(x^3))-1 $$那么已知 ,那么可知:
$$F_1=F(x)-\frac{G(x,F(x))}{\frac{\partial G}{\partial F(x)}G(x,F(x))} \bmod{x^{2n}} $$注意这里的求导是形势求导,把 当做变量求导, 都当做常量,整理一下:
$$\begin{align} F_1&=F(x)-\frac{F(x)-\frac{x}{6}(F^3(x)+3F(x^2)F(x)+2F(x^3))-1}{1-\frac{x}{6}(3F^2(x)+3F(x^2))}\\ &=\frac{F(x)-\frac{x}{6}(3F^3(x)+3F(x^2)F(x))-F(x)+\frac{x}{6}(F^3(x)+3F(x^2)F(x)+2F(x^3))+1}{1-\frac{x}{6}(3F^2(x)+3F(x^2))}\\ &=\frac{1-\frac{x}{3}(F^3(x)-F(x^3))}{1-\frac{x}{2}(F^2(x)+F(x^2))} \end{align} $$倍增迭代即可得到烷基计数的生成函数,我们记为 。
0x02 烯烃计数
从碳碳双键的地方把这个有机物拎起来,那么这两个碳原子再链接两个烷基就行,先用 Burnside 引理对一个碳原子进行计数:
继续用 Burnside 引理对两个碳原子进行计数:
得到答案。
- 1
信息
- ID
- 5328
- 时间
- 2000ms
- 内存
- 500MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者