数学题做题记录

前言

这一周搞数学,于是我就顺手开了一篇博客,记录一些我认为比较好的题目。这次的题解准备写的简略一些,并且会总结每道题的关键点。希望能对自己有帮助、提升。

——upd on 2025.3.17

正片

有标号 DAG 计数

要点总结

  1. 弱连通图生成函数的 exp 就是任意连通图的 EGF
  2. \(i\times j={i+j\choose2}-{i\choose2}-{j\choose2}\)
  3. 遇到限制性强的信息直接容斥

题解

首先转化成对任意连通图计数再求 ln,对于任意连通图考虑入度为零的点个数。这个信息限制了我们的转移,于是我们钦定入度为零的点个数然后简单容斥。设 \(a_{i,j}\) 表示 i 个点钦定 j 个入度为零,\(b_{i,j}\) 表示恰有 j 个入度为零,就有:

\[\begin{aligned} a_{i,j}=\sum_{k=j}^i{k\choose j}b_{i,k}\\ a_{i,j}={i\choose j}2^{j(i-j)}g_{i-j}\\ g_n=\sum_ib_{n,i} \end{aligned} \]

经过一番推导化简归类得到:

\[{g_n\over n!2^{n\choose2}}=\sum_{i=0}^n{(-1)^{i+1}\over i!2^{i\choose2}}{g_{n-i}\over (n-i)!2^{n-i\choose2}} \]

令:

\[\begin{aligned} P(n)={g_n\over n!2^{n\choose2}}\\ Q(n)={(-1)^{n+1}\over n!2^{n\choose2}} \end{aligned} \]

就有:

\[P(x)={1\over1-Q(x)} \]

硬币游戏

要点总结

  1. 构造一个长度为 l 的特定 01 串概率是 \(1\over2^l\)
  2. 到一个字符串结束的条件

题解

\(f_0\) 表示任意长度的一个串合法的概率,\(f_i\) 表示第 i 个人获胜概率,就有:

\[\sum_{i=1}^nf_i=1 \]

如果我们强制以某个串结尾,那么在这个串接在一个任意长的串后不一定行。因为有可能这个串的前缀恰巧是另一个串后缀,所以去重,有:

\[f_i={f_0\over2^m}-\sum_{j=1}^nf_j\sum_{k=1}^m[pre_{i,k}=suf_{j,k}]{1\over2^{m-k}} \]

于是就可以高消 \(O(n^3)\) 做完了。

情侣?给我烧了!

要点总结

  1. EGF 解决计数
  2. Catalan 数的生成函数

题解

注意:此题题解只保留关键步骤,但是还是写了很多式子,这道题有点复杂。

这道题原始式子很容易推出:

\[f_{n,k}={n\choose k}^22^kk!D_{n-k} \]

其中 \(D_{i}\) 表示将 i 对情侣错开排座位的方案数。现在关键是求出 \(D_i\)

经观察可发现:

\[\sum_kf_{n,k}=(2n)! \]

于是我们就把 \(f_{n,k}\) 写开,之后会发现 \(\sum\) 里面只有与 k 有关的和与 n-k 有关的东西,可以想到卷积。于是有:

\[e^{2x}\sum_{k}{D_{k}\over k!^2}={(2n)!\over n!^2} \]

\(G_i={D_i\over i!^2}\)于是有:

\[G(x)={e^{-2x}\over\sqrt{1-4x}} \]

这里其实已经结束,我们暴力还原回合式即可。但还可以继续拆解,考虑求导:

\[G'(x)={8x \cdot e^{-2x}\over(1-4x)^{3\over2}}={8x\over(1-4x)}G(x) \]

化简就能得到:

\[G'(x)=4xG'(x)+8xG(x) \]

\(G_i\) 还原回去得到:

\[D_n=4n(n-1)D_{n-1}+8n(n-1)^2D_{n-2} \]

整数的lqp拆分

要点总结

  1. 生成函数计数
  2. 特征多项式基本应用

题解

我们套路性地套上生成函数,发现其实 \(a_i\) 的值我们不关心,反倒是 \(a_i\) 的个数,设答案为 \(G(x)\),就有:

\[G(x)=\sum_iF(x)^i \]

化简得到:

\[G(x)={1-x-x^2\over1-2x-x^2} \]

分母可变成递推式:

\[a_n=2a_{n-1}+a_{n-2} \]

乘分子得到:

\[ans=a_n-a_{n-1}-a_{n-2}=a_{n-1} \]

然后你就可以把递推式拿去解特征方程求通解了,答案是:

\[{\sqrt2-1\over2\sqrt2}(1-\sqrt2)^{n-1}+{\sqrt2+1\over2\sqrt2}(1+\sqrt2)^{n-1} \]

城市规划

要点总结

  1. 简单有标号无向连通图的生成函数的 exp 是简单有标号无向图的 EGF

题解

和此博客第一题类似,考虑 exp 的组合意义,然后求简单有标号无向图的 EGF 就做完了。

付公主的背包

要点总结

1.\(\prod\)\(\exp\sum\ln\)

题解

面对 \(\prod\) 不好处理,难以战胜,我们考虑把 \(\prod\) 转化成 \(\exp\sum\ln\)。对于每个 V 一起计算。

在处理 \(\ln\) 的时候我通过瞎猜找到的其合式:

\[\ln{1\over1-x^V}=\sum_{i}{x^{iV}\over i} \]

下面给出证明:

\[\begin{aligned} g(x)&=\ln{1\over1-x^V}\\ &=\int({\mathrm d\over\mathrm dx}\ln f)(x)\mathrm dx\\ &=\int({f'(x)\over f(x)})\mathrm dx\\ &=\int((1-x^V)f'(x))\mathrm dx\\ &=\int((1-x^V)\sum_iVi\cdot x^{Vi-1})\mathrm dx\\ &=\int(\sum_iVi\cdot x^{Vi-1}-\sum_iVi\cdot x^{Vi-1}x^V)\mathrm dx\\ &=\int(\sum_iVx^{Vi-1})\mathrm dx\\ &=\sum_{i}{x^{Vi}\over i} \end{aligned} \]

然后在 Vi 处暴力赋值累加最后一遍 exp 结束。

染色

要点总结

  1. 恰好转钦定
  2. 凑卷积形式

题解

套路。设 \(f_i\) 表示恰好有 i 种颜色出现 S 次,\(g_i\) 表示钦定有 i 种。考虑后者更容易表示,我们分步统计然后乘法原理。

具体的,我们先确定选的 i 种颜色,然后分配位置顺序,最后考虑没选的怎么填。用 \(g_i\) 通过二项式反演表示 \(f_i\) 即可。

无聊的水题

要点总结

  1. 度数+有标号无根树联想到 prufer 序列
  2. EGF 的组合意义

题解

题目让你求 \(n\) 个点且最大点度为 \(m\) 的有标号无根树个数。

我们可以从上面的题意中找到一些关键字眼:最大点度有标号无根树。这些无不指向同一个东西:\(prufer\) 序列!

首先每个 \(prufer\) 序列都对应一个有标号无根树,其次一个数在序列中的出现次数加一就是其度数,所以我们将题目转化成下面形式:

在序列上填数,序列长度为 \(n-2\),填数的范围是 \([1,n]\),需要满足出现次数最多的数出现了 \(m-1\) 次,求方案数。

因为最多恰好出现 \(m-1\) 次不好计数,所以容斥。考虑出现次数小于 \(m\) 次的数量减去小于 \(m-1\) 的数量。现在问题被进一步简化,考虑求最多出现次数小于 \(m\) 次的填数方案数。

解决这种组合问题最简洁的我认为是 \(EGF\)。尝试用 \(EGF\) 去刻画这个问题,我们先从最简单的开始。考虑只填一个数,其出现次数的 \(EGF\)\(F(x)=\sum\limits_{i=0}^m{x^i\over i!}\)。我们知道 \(EGF\) 相乘会多出一个组合数,也就是说 \(EGF\) 相乘可以刻画组合问题。对于此题也是如此。我们将 \(F(x)\) 连续乘 \(n-2\) 次,就刻画了将 \(n\) 种不同的数填进长度为 \(n-2\) 的序列的过程。所以答案就是 \([x^{n-2}]F(x)^n\)。多项式快速幂可用不同方法解决,这里用的是 \(O(n\log n)\) 的做法。

WD与积木

要点总结

  1. 元素有序用 EGF
  2. 组合组成的序列的 EGF 封闭形式

题解

对于一层的生成函数为:

\[F(x)=\sum_i{x^i\over i!} \]

对于 n 层的生成函数就是:

\[G(x)=\sum_iF(x)^i={1\over1-(e^x-1)}={1\over2-e^x} \]

对于 n 层的答案是:

\[H(x)=\sum_iiF(x)^i={e^x-1\over2-e^x} \]

求期望就是 \(H(x)\over G(x)\),时间复杂度 \(O(n\log n)\)

Cards

要点总结

  1. 求本质不同的染色方案想到用 polya

题解

由题中“其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种”可得只需要通过一种转置就可以得到所有情况,于是套路地套用 burnside 引理得到:

\[ans={1\over n}\sum_{i=1}^nr^{gcd(i,n)} \]

枚举 \(\gcd\)

\[ans={1\over n}\sum_{d|n}n^d\sum_{i=1}^{n/d}[\gcd(i,n/d)=1] \]

最后面是 \(\varphi\) 的定义,于是考虑一个类似背包的 dp 求置换方案数。

有色图

备注:自己还是无法独立切题,参考了兔队题解

要点总结

  1. 求本质不同的染色方案想到用 polya
  2. 对于不同边的处理

题解

还是和上题一个思路,结合 n 很小的条件,我们能够想到去枚举点的划分,这个复杂度是可接受的。然后我们需要找的每个等价类的个数以及每个等价类中不动点的个数

先考虑等价类个数。如果什么都不考虑就是一个裸的多重组合数,但是考虑无标号,所以当多个划分大小相同时会错,于是去重即可:

\[cnt={n!\over\prod a_i\prod c_i} \]

其中 a 是枚举的划分大小,c 是每个数的出现次数。

在考虑不动点个数。这时需要考察每条边的情况。对于一条边连接的点在一个划分中时,不动点个数等价于边的种类,所以有 \(a_i\over2\) 个;对于一条边连接的点不在一个划分中时,就是 polya 中的 gcd 了,所以个数就是:

\[\sum{a_i\over2}+\sum_{i<j}\gcd(a_i,a_j) \]

然后把上面的东西全部代入 polya 的式子即可。时间复杂度不会算/kk。

posted @ 2025-03-18 21:42  Lyrella  阅读(123)  评论(1)    收藏  举报