烷烃计数(Burnside引理,分治FFT)

在本学期的期末考试中, 连原电池正负极都分不清的你深感自己要爆零了没错正是在下. 就在这时, 你看到了一道附加题:
33. \texttt{33.} 33.(本题共计 100 \texttt{100} 100 分) 23333 \texttt{23333} 23333 烷的同分异构体个数为 _______。(不考虑立体异构)
是时候表演真正的计数了! 现在, 请你快速计算化学式为 C n H 2 n + 2 C_nH_{2n+2} CnH2n+2 的烷烃的同分异构体个数.
多组数据. 答案对 998244353 998244353 998244353 取模.

O I OI OI语来说就是求每个点度数 ≤ 4 \leq 4 4的无标号无根树的个数。
有一个经典的 D P DP DP做法:
考虑无标号有根树的计数:
f i , j f_{i,j} fi,j表示根有 j j j个儿子,总共有 i i i个点的合法方案数。
在无标号的情况下,根相当于是一个特殊的节点。(用有机化学的角度可能对高中生更为友好:有一个碳原子被特殊标记了)
那么两个无标号有根树同构,当且仅当一棵树根节点的所有儿子经过某种顺序的置换后跟另一棵树的所有儿子一一同构。
所以可以写出转移方程:
f i , j = ∑ 1 ≤ p ≤ j f i − p v , j − p ∗ ( p − 1 + ∑ 0 ≤ k ≤ 3 f v , k p ) f_{i,j} = \sum_{1\leq p \leq j} f_{i-pv,j-p} * \binom{p-1+\sum_{0\leq k \leq 3}f_{v,k}}{p} fi,j=1pjfipv,jp(pp1+0k3fv,k)
v v v代表新加入的子树的大小,
p p p代表要加入几个。
显然 v v v相同的子树之间才可能有同构关系,
后面那个组合数就是求 v v v相同的子树选 p p p个可重的方案。

解决有根树之后考虑无根树:
如果只有一个重心,那么以这个重心为根的有根树数量就是无根树数量。
所以我们求一个每个儿子都 2 ∗ s z < n 2 * sz\lt n 2sz<n的无标号有根树方案即可,
再加上有两个重心也就是两个 s z = n 2 sz = \frac n2 sz=2n的有根树拼起来的方案数。
这样我们就得到了一个 O ( n 2 ) O(n^2) O(n2)做法。

再考虑有根树的 D P DP DP
可以套用 B u r n s i d e Burnside Burnside引理,求根的 3 3 3个儿子的置换后的不动点总数 ÷ \div ÷总置换数(为了方便我们将少于 3 3 3个儿子看作有 3 3 3个儿子但是有儿子没有包含碳原子):

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值