cmd 博客乱学
指的是 多项式计数杂谈 , 炫酷反演魔术 ,min-max容斥小记 和 单位根反演小记 。
主要学的是前面两个,后面两个是前面的子项。
本文中的例题,除了单独的链接,其他没有写代码,自己乱推的,不保证完全正确。
多项式计数杂谈
若干数学知识
不讲了。
生成函数引入
不讲了。
一些数列的轻量级推导
首先是一些基本的生成函数封闭形式要认识一下。
还有几个用二项式瞎几把推的玩意。
斐波那契类问题
把一个生成函数用它自己的形式表示。注意边角项。
你会拆出来一个式子,以斐波那契为例。
你发现下面这个方程有两个根,根据牛逼定理,你大力猜这玩意可以裂项。
然后你就设
然后手动解个方程。
之后你可以用这两个东西直接搞出通项公式。
如果模意义下缺点东西的话,可以扩域。
特征方程
如果你觉得上面那个方法太烦,可以试试特征方程。
它用来解决
一类的问题。
有更高维的形式,但是比较麻烦,不搞了。
你假装
是一个公比为 的等比数列。
然后你可以得到
你根据这个方程搞出 。
然后
根据前两项的值解出 和 就行了。
证明:
你觉得我会?
构造幂级数的小技巧
平移和拉伸。
常系数齐次线性递推
其实就是手动把一些项补齐吧。
分式分解
这是什么鸡儿玩意。
卡特兰数
有通项公式
把两边的生成函数写出来
当 的时候, 。如果上面取正号,会搞出非零数除以零,寄。
所以
如何搞成更优美的形式,需要广义二项式定理。
生成函数组合计数初步+多项式工业练习
组合对象
指满足某一性质的可数的对象。
笛卡尔积
称 为 的笛卡尔积。
其实就是每个集合选一个元素,组成的有序多元组的集合。
OGF
ordinary generating function.
两个 OGF 的乘法是经典的加法卷积。
OGF 的加法代表不相交集合的并。
OGF 的乘法代表笛卡尔积
例题:
CF438E The Child and Binary Tree
EGF
exponential generating function.
设有数列 ,其 EGF 为 。
就是在第 项除了个 。
两个 EGF 的乘法是二项加法卷积
证明:
得证。
常用的 EGF:
(有标号对象的)笛卡尔积
将两个集合拼起来时,要用组合数分配标号。
例题:
LG5219 无聊的水题 I LG5339 [TJOI2019] 唱、跳、rap和篮球
exp 的组合意义
这个的意义是多次卷积拼接自己。
例题:
PGF
probabilistic generating function.
对于离散随机变量 ,约定
其概率生成函数为
显然有 。
这玩意可以求导与期望产生联系
进一步扩展
例题不会。
关于上面三种 GF 的例题:
51nod1514
设 表示长度为 的合法排列个数。
容斥一下,不满足条件等价于在中间劈开,左边的数形成一个排列。
注意右边如果随便的话,就会算重。所以要保证左边加右边的前缀不是一个排列。
枚举左边的长度,得到
移项
设 ,大力整一发 OGF
然后没了。
CTS2019 珍珠
LG5850 calc加强版
先把这玩意搞成无序的。
容易看出,答案是
按照套路,两边取 。
上面这玩意就变成了
然后你大力 EGF 搞出自然数幂和,就可以推倒了 /se 。
LG5860 Counting Trees
那必然是在 prufer 序列上搞事了。
答案相当于
在通常情况下,右边这玩意不好直接 。
对于 的,那就瞎几把特判一下,搞出一个 。
对于 的,那就瞎几把 ,搞出一个 。
然后把 和 卷起来就行了。
LOJ6503 Magic
把一种颜色分成 段,就会产生 个相邻。这样会有 种方法。
所以一种颜色的 EGF 就是
分治 NTT 把它们卷在一起。
那么硬点分成 段,其他随便的方案数就是 。
恰好 个相邻要求分成 段。
设 表示恰好 段的方案数。
有
二项式反演一下
然后无了。
LG6516 Quark and Graph
不出意外的话,这题会是模拟赛题。
到时候应该会有一个专门的题解。
CF923E Perpetual Subtraction
不会,有时间再补。
upd:nmd 这题被扔进模拟赛里了,不得不做。
写出式子之后就是一路爆推。
没意思。
关于二项式
拆开组合数
很 trivial ,不讲了
经典二项式定理
很 trivial,不讲了
加法递推公式
这玩意可以优化组合数递推式,可以裂项,用于凑出系数。
推论和技巧:
上面两个都可以用从左到右 merge 的方法证明。
例题:
ARC061F
第一步转化没想到。但是后面的自己推出来了。
首先你要把它转化成一个序列对吧。
我这边的计数方法和其他人的有点不一样。
那么在这个数列里, 会出现 次, 出现不超过 次, 出现不超过 次。且最后一次出现的一定是 。
那么大力枚举序列的长度。再枚举 的出现次数。
像上面所说,此时的 有限制。 且 。
所以右边实际上是
那么我们记
那么我们就想 。
考虑做差
然后你就可以愉快地递推了。
范德蒙德卷积
组合意义挺显然的。
例题:
LG2791 幼儿园篮球题
感觉比较简单。写出最原始的式子之后就一路挺显然的。
有一个
广义二项式系数,广义二项式定理
广义二项式系数
其中 是实数。
广义二项式定理
一些衍生技巧
上指标反转
对于 型组合数:
先考虑把 写成一些组合数的乘积。
用加倍公式
令 ,再同时除以 ,可以得到
用上指标反转,得到
这时可以搞出
逆用广义二项式定理,搞出上面这玩意的封闭形式是
下降幂和上升幂的二项式定理
限制 是自然数
跟普通幂的没啥区别。
差分与前缀和
一个数列的一阶前缀和相当于卷上了一个 。
阶前缀和就是卷了个 。
差分就是卷 ,然后平移。
例题:
LG4458 链上二次求和
这个例题跟这个知识点有啥关系啊喂。
把这玩意搞出一个前缀和 。
把前缀和 再搞个前缀和
然后乱维护 , 就可以了。就变成一个 ds 问题了。
牛顿级数
不会。
生成函数与杨辉三角
把杨辉三角写成二元 GF
在组合数特定方向求和的时候,可以用这玩意搞出 GF,然后直接从封闭形式搞出点好玩的东西。
其他特殊数
斯特林数
基本的东西不讲。
例题
CF932E Team Work
什么垃圾题。
LG4609 [FJOI2016] 建筑师
什么第一类 Stirling 数神仙题。
CF960G Bandit Blues
这 tm 不是跟上一题一样吗。
CF961G Partitions
第一眼:不会
第二眼:瞪出来一个式子,然后 NTT 同一列斯特林数就可以了哈哈哈。
核心是化简这样一个东西
然后你直接拆斯特林数,直接推就行了。
CF715E Complete the Permutations
不会。mark 一下,以后补。
伯努利数
不会。不想学。
欧拉数
不会。不想学。
分拆数
不会。不想学。
(你怎么啥也不想学 /fn)。
后面的学个锤子。我爬了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!