杂题乱做

杂题乱做

加训数数

付公主的背包

这玩意貌似非常典,首先答案是 \(\prod \dfrac{1}{1-x^k}\) 的各项系数

考虑如何计算这个式子,注意到

\[\ln(1-x^k)'=\dfrac{-kx^{k-1}}{1-x^k} \]

\[\ln(1-x^k)=\int\dfrac{-kx^{k-1}}{1-x^k} \mathrm dx=\int \sum_i -kx^{k-1+ik} \mathrm dx=\sum_i \dfrac{-kx^{k+ik}}{k+ik}=\sum_i \dfrac{-x^{k+ik}}{1+i} \]

好像其实泰勒展开一下就完了

然后发现这个式子统计每种权值的物品加法暴力做就是调和级数的,最后 \(\exp\) 回来再求逆即可,复杂度一个 \(\log\)

有标号 DAG 计数

更典了,考虑暴力容斥,就是直接主旋律,先扔掉那个看起来不太好做的弱连通限制,枚举零度点,算一下容斥系数有

\[f_i=\sum_{j=1}^i (-1)^{j+1} \dbinom i j 2^{(i-j)j} f_{i-j} \]

然后就好说了,后面部分暴力计算一下不弱联通的方案减掉就是 \(O(n^2)\)

前面那个式子通过应用 \(ab=\dbinom {a+b} 2 - \dbinom a 2 - \dbinom b 2\) 可以拆成卷积,后面一部分因为无限制的等于弱联通 \(\exp\),所以直接 \(\ln\) 回来就结束了,一个 \(\log\)

有标号有根树计数

老师我会凯莱公式

考虑 gf 做法,考虑答案的 EGF,有 \(F(x)=x \exp(F(x))\)

变形一下,就是 \(\dfrac{F(x)}{\exp(F(x))}=x\) 那么可以发现 \(F^{\langle -1 \rangle}(x)=xe^{-x}\)

这时候可以直接牛顿迭代做 \(O(n\log n)\)

考虑拉格朗日反演,有 \([x^n] F(x) = \frac{1}{n} [x^{n-1}]\left(\frac{x}{F^{\langle -1 \rangle}(x)}\right)^n\)

那么就有 \([x^n] F(x) = \frac{1}{n} [x^{n-1}] e^{nx} =\dfrac{n^{n-1}}{n!}\)

拉格朗日反演
详细证明和几个形式可以阅读这篇博客,然后比较常用的形式是

\[[x^n] P(Q(x)) = \frac{1}{n} [x^{n-1}]P'(x) \left(\frac{x}{Q^{\langle -1 \rangle}(x)}\right)^n \]

\[[x^n] P(Q(x)) = [x^{n}]P(x) \left(Q^{\langle -1\rangle}(x)\right)' \left(\frac{x}{Q^{\langle -1 \rangle}(x)}\right)^{n + 1} \]

jijidwang说另类拉反 (后面那个) 很多时候非常强大

抛硬币

小糖题

观察可以发现净胜次数的生成函数是 \((1+x)^a (1+x^{-1})^b\) 然后我们只需要提取其大于等于 \(1\) 次项系数求和就好了

二项式定理展开,这相当于 \(\sum\limits_{k=1}^a \sum\limits_{i=k}^a \dbinom{a}{i} \dbinom{b}{i-k}\)

这是一个显然的范德蒙德卷积形式,所以答案即为 \(\sum\limits_{k=1}^a \dbinom {a+b}{k-1}\)

组合数求半行即可,难点在于 exlucas

其实还可以直接 \((1+x)^a (1+x^{-1})^b=x^a (1+x^{-1})^{a+b}\) 然后就做完了

有标号荒漠计数

其实并没有比树难多少吧

考虑统计有根仙人掌的个数,然后无根的就好说了,最后 \(\exp\) 求荒漠的就好了

依然考虑一棵仙人掌的 EGF,有 \(F(x)=x\exp(\sum\limits_{i\ge 2}\dfrac{F(x)^i}{2}+F(x))\)

和有根树区别不大,考虑 \(\dfrac{F(x)^i}{2}\) 是拼成一个大小为 \(i\) 的环的生成函数,那么我们只需要将其全加起来起来再 \(\exp\) 一下就没问题了

那么把右边那个等比数列缩回去以后就可以牛顿迭代直接计算了,但是这东西运算简直麻烦炸了,不过反正牛顿迭代不管怎么拼复杂度都是 \(n\log n\) 求整个数列

被卡常了,怒拿最劣解

不过这题好像有 \(O(n)\) 做法,等我成为生成函数高手再研究

无标号无根树计数

先考虑无标号有根树

列出 OGF 发现是一个类似付公主的背包的形式,写出来就是 \(F(x)=x\exp \sum\limits_i F_i \sum\limits_k \dfrac{x^{ki}}{k}\)

然后不难发现这个东西其实等于 \(x\exp \sum\limits_k \dfrac{F(x^k)}{k}\)

那么我们看一下现在是个什么式子,\(F(x)=x\exp \sum\limits_{k\ge 1} \dfrac{F(x^k)}{k}\)

这个式子里面 \(\sum\limits_{k\ge 2} \dfrac{F(x^k)}{k}\) 是已知项,暴力算一下之后视为常数扔掉不管,记作 \(G(x)\)

\[F(x)=G(x)\exp F(x) \]

然后直接就能做了,原理在于当前知道的式子不算未知数,求导的时候可以直接扔掉,关于这部分可以看这篇博客

那么无根的怎么办呢,我们钦定一棵树的根是它的重心,那么只需要简单容斥就可以求出无根树的数量

概率论

这题并不困难,考虑分别计数叶子个数以及树的形态

根据经典结论,二叉树形态数显然是卡特兰数

设树形态的生成函数为 \(G(x)\),叶子个数为 \(F(x)\)

则显然有

\[G(x)=\dfrac{1}{1-xG(x)} \]

\[F(x)=\dfrac{x}{1-2xG(x)} \]

提取 \(n\) 次项系数就好了,解方程可得 \(G(x)=\dfrac{1\pm \sqrt {1-4x}} {2x}\),正号舍去,也就是卡特兰数的生成函数,当然你不知道的话也可以直接展开

那么直接展开就能线性提取上面的系数了,不过还不够

之后容易发现 \(F(x)=\dfrac{x} {\sqrt{1-4x}}=x(xG(x))'\)

那么 \([x^n]F(x)=n[x^{n-1}]G(x)\)

于是暴力拆开组合数就能得到通项 \(\dfrac{n(n+1)}{4n-2}\)

树的数量

拉格朗日反演基础练习题

首先要读对题目,它的意思是 \(m\) 个儿子都可区分,所以设答案的 OGF 为 \(F(x)\),则 \(F(x)=x(1+F(x))^m\)

那么就容易发现 \(F^{\langle -1 \rangle}(x)=\dfrac{x}{(1+x)^m}\)

由拉格朗日反演得 \([x^n] F(x)=\dfrac 1 n [x^{n-1}] (1+x)^{mn}\)

直接二项式定理展开就会得到 \([x^n] F(x)=\dfrac{\dbinom{nm}{n-1}}{n}\)

计算这个式子就好了,感觉吊打牛顿迭代啊

城市规划

这个真典吧,首先去掉联通限制很显然,然后转到 EGF 取完 \(\ln\) 之后就是带限制的,结束了

无聊的水题 I

不是哥们,我咋感觉我一直在做同一个题

首先限制改成至多,差分一下就能得到答案,然后就发现除了树根以外的每个节点都最多有 \(m-1\) 个儿子

那么就相当于 \(F(x)=x\sum\limits_{i=0}^{m-1}F^i(x)\) 可以直接牛顿迭代

之后根节点最多有 \(m\) 个儿子,就是 \(G(x)=x\sum\limits_{i=0}^{m}F^i(x)\) 等比数列求和之后套上求逆和快速幂就完事,复杂度 \(O(n\log n)\)

那么其实还有一个做法,考虑一棵树的prufer序列,那么容易发现我们所求就是序列中最大出现次数 \(\le m-1\) 的方案数,那么我们设一个多项式为 \(F(x)=\sum\limits_{i=0}^{m-1} \dfrac{x^i}{i!}\) ,则只需要提取 \(F^{n-2}(x)\) 的系数,直接快速幂就完了

第一类斯特林数·列

没啥好说的,首先容易发现环的指数生成函数是 \(F(x)=\sum\limits_{i=1} \dfrac{x^i}{i}\)

直接将这些东西拼起来,因为有 \(k\) 个的限制,所以是 \(\dfrac{F^k(x)}{k!}\)

然后因为常数项是 \(0\) 不太能取对数,所以可以提出来一个 \(x\) 再接着做,复杂度 \(O(n\log n)\)

烷烃计数

限制度数,但是无标号

考虑无标号有根树计数,那么限制孩子数最大为三的 OGF 是什么呢

发现其实就是 \(F(x)=[y^3] (1+y+y^2+y^3)x\prod (1+x^ky+x^{2k}y^2+x^{3k}y^3)^{F_k}\),依然是 Euler 变换的套路,取 \(\ln\) 得到 \(F(x)=x(1+y+y^2+y^3) \exp (\sum\limits_k F_k \ln (1+x^ky+x^{2k}y^2+x^{3k}y^3))\)

因为只有前面几项能提取到,\(\exp\) 的那一部分显然等于 \(\exp (\sum\limits_k F_k \ln \dfrac{1}{1-x^ky})\) 那么比较显然可以拆成 \(\exp \sum\limits_{i=1}^{3} \dfrac{y^i}{i}F(x^i)\) 因为这多项式很短,考虑手动 \(\exp\) 一下,顺便暴力提取一下这玩意前四项系数之和,发现没有那么复杂,答案是 \(F(x)=1+F(x)+\dfrac{F(x^2)}{2}+\dfrac{F(x^3)}{3}+\dfrac{F^2(x)}{2}+\dfrac{F(x)F(x^2)}{2}+\dfrac{F^3(x)}{6}\)

后面一部分和无标号无根树计数就一样了

接下来是树根,有 \(R(x)=x\prod (x^k+x^{2k}+x^{3k}+x^{4k})^{F_k}\),就和上面一样了

然后最后的容斥也和无标号无根树一样

BAKTERIJE

怎么不数数了???

一眼顶针,首先肯定是拆点建图,一个点拆成四个方向,容易发现这样每个点出度唯一,那么最后一定是一棵基环树森林

容易发现如果终点不在起点所在连通块一定无解,终点在起点向前的链上的情况是平凡的,我们只需要考虑终点在环上

假设当前终点唯一,那么容易发现可以直接 excrt 合并每个细菌的答案,但是我们现在把一个终点拆成了四个点,直接 \(4^k\) 暴力枚举每个点的终点即可

最难的部分在基环树找环

posted @ 2025-06-07 21:23  wang54321  阅读(49)  评论(1)    收藏  举报