Note -「广义二项级数」浅赏
上回 说到拉反和扩展拉反,那么这里先给几个小小变形或推广。
基础 ver:
[x^n]G(x) &= \frac{1}{n}[x^{n-1}](F(x)/x)^{-n},\tag1\\
[x^n](H\circ G)(x) &= \frac{1}{n}[x^{n-1}]H'(x)(F(x)/x)^{-n}.\tag2
\end{align}
\]
令 \(H(x)=x^k\) 带入 \((2)\):
\]
另一个变形,由于
\]
那么:
\]
既然都会求 \(G^k(x)\) 了,我们立马把 \(H(x)\) 往 \((4)\) 头上一套,得到:
[x^n](H\circ G)(x) &= [x^n]H(x)F'(x)(F(x)/x)^{-n-1}\tag5\\
&= [x^0]xH(x)F'(x)F^{-n-1}(x).\tag6
\end{align}
\]
做了一道例题之后不负责任的感言:\((6)\) 挺有用的(事实上,后文只用了 \((6)\) 这一种形式),或许是因为最多变的 \(H(x)\) 不用导了。
关于 \(\mathcal B_t(x)\),它是一个满足如下方程的 GF:
\]
当 \(t=2\),这是 Catalan 数的 GF,于是乎依照 Catalan 的多样组合意义,你可以对 \(\mathcal B_t(x)\) 进行包括但不限于多边形划分、走折线计数、 多叉树计数等组合意义解释。这个 GF 结合拉反,能够对相关 \(\binom{tn+r}{n}\) 的求和进行有效变形。所以——
学拉格朗日反演不学广义二项级数, 就像读四大名著不读红楼梦. 说明这个人文学造诣和自我修养不足, 他理解不了这种内在的阳春白雪的高雅艺术, 他只能看到外表的辞藻堆砌, 参不透其中深奥的精神内核, 他整个人的层次就卡在这里了, 只能度过一个相对失败的人生.
整活完毕,我们来推一下 \(\mathcal B_t(x)\) 的系数。令 \(F(x)=\mathcal B_t(x)-1\) 以去掉常数项,观察发现 \(F\) 的复合逆为 \(G(x)=x(1+x)^{-t}\),那么
\mathcal [x^n]B_t^r(x) &= [x^n](1+F(x))^r\\
&= [x^0]x(1+x)^r\frac{(1+x)^t-xt(1+x)^{t-1}}{(1+x)^{2t}}\frac{(1+x)^{tn+t}}{x^{n+1}}\\
&= [x^0]x(1+x)^r\frac{1-(t-1)x}{(1+x)^{t+1}}\frac{(1+x)^{tn+t}}{x^{n+1}}\\
&= [x^n](1+x)^{tn+r-1}(1-(t-1)x)\\
&= \binom{tn+r-1}{n}-(t-1)\binom{tn+r-1}{n-1}\\
&=\frac{r}{tn+r}\binom{tn+r}{n}.
\end{aligned}
\]
其中第二步用公式 \((6)\),代入 \(H(x)=(1+x)^r\) 反演。
然后你就会说了,它这组合数带个 \(\frac{r}{tn+r}\) 的系数,格局就上不去,根本做不了题。我们来尝试弄一下 \(\sum_{n\ge 0}\binom{tn+r}{n}x^n\) 的表达式
\binom{tn+r}{n} &= [x^n](1+x)^{tn+r}\\
&= [x^0]((1+x)^t/x)^n(1+x)^r\\
&= [x^0]G^{-n}(x)(1+F(G(x)))^r\\
&= [x^0]x\cdot x^{-n}(1+F(x))^r\cdot F'(x)/F(x)\\
&= [x^n](1+F(x))^r\frac{xF'(x)}{F(x)}\\
&= [x^n](1+F(x))^r\frac{x(G'(F(x)))^{-1}}{F(x)}\\
&= [x^n](1+F(x))^r\frac{G(F(x))}{G'(F(x))F(x)}\\
&= [x^n](1+F(x))^r\frac{1+F(x)}{1-(t-1)F(x)}.
\end{aligned}
\]
神他妈的,第三步时,令 \(H(x)=x^{-n}(1+F(x))^r\) 代公式 \((6)\),居然能这么反演,我兔麻了。最后一步展开 \(G(x)\) 和 \(G'(x)\) 整理即可,不多讲。
然后是喜闻乐见的例题时间。
初步转化,枚举 \(x\),求合法方案数。当 \(x\) 确定时,方案数为
\textit{ans}_x &= \sum_{b=0}^B\sum_{r=bx}^{R-(B-b)x}\binom{r+b}{r}\binom{R-r+B-b}{R-r}\\
&= \sum_{b=0}^B\sum_{d=0}^{R-Bx}\binom{b(x+1)+d}{b}\binom{(B-b)(x+1)+R-Bx-d}{B-b}\\
&= \sum_{d=0}^{R-Bx}\sum_{b=0}^{B}\binom{b(x+1)+d}{b}\binom{(B-b)(x+1)+R-Bx-d}{B-b}.
\end{aligned}
\]
令 \(t=x+1\),你发现这个组合数 \(\binom{bt+d}{b}\) 我们好像挺会的。令 \(F(z)=\mathcal B_t(z)-1\),带入结论:
\textit{ans}_x &= \cdots\\
&= \sum_{d=0}^{R-Bx}\sum_{b=0}^B\left([z^b](1+F(z))^d\frac{1+F(z)}{1-(t-1)F(z)}\right)\left([z^{B-b}](1+F(z))^{R-Bx-d}\frac{1+F(z)}{1-(t-1)F(z)}\right)\\
&= [z^B]\sum_{d=0}^{R-Bx}(1+F(z))^{R-Bx}\left(\frac{1+F(z)}{1-(t-1)F(z)}\right)^2\\
&= (R-Bx+1)[z^B](1+F(z))^{R-Bx}\left(\frac{1+F(z)}{1-(t-1)F(z)}\right)^2.
\end{aligned}
\]
然后我们叕来一次拉反,令 \(H(z)=(1+z)^{R-Bx}\left(\frac{1+z}{1-(t-1)z}\right)^2\),反正已经有 \(F\circ G=z\),丢进去反演:
\frac{\textit{ans}_x}{R-Bx+1} &= \cdots\\
&= [z^0]zH(z)G'(z)G^{-B-1}(z)\\
&= [z^0]z(1+z)^{R-Bx}\left(\frac{1+z}{1-(t-1)z}\right)^2\frac{1-(t-1)z}{(1+z)^{t+1}}\frac{(1+z)^{Bt+B}}{z^{n+1}}\\
&= [z^B]\frac{(1+z)^{R+1-t+B}}{1-(t-1)z}\\
&= [z^B]\frac{(1+z)^{R+B+1}}{1-xz}\\
&= \sum_{i=0}^B\binom{R+B+1}{i}x^{B-i}.
\end{aligned}
\]
最终,答案就是
\textit{ans} &= \sum_{x=1}^{R/B}(R-Bx+1)\sum_{i=0}^B\binom{R+B+1}{i}x^{B-i}\\
&= \sum_{i=0}^B\binom{R+B+1}{i}\left((R+1)\sum_{x=1}^{R/B}x^{B-i}-B\sum_{x=1}^{R/B}x^{B-i+1}\right).
\end{aligned}
\]
于是乎求一堆范围固定,上指标可变的自然数幂和即可。
为了水篇幅我们来推一下这题自然数幂和的求法。令 \(f_k=\sum_{i=0}^ni^k\),并令其 EGF 为 \(F(z)\),那么
F(z) &= \sum_{i\ge0}\frac{z^i}{i!}\sum_{j=0}^nj^i\\
&= \sum_{j=0}^n\sum_{i\ge0}\frac{j^iz^i}{i!}\\
&= \sum_{j=0}^ne^{jz}\\
&= \frac{1-e^{(n+1)z}}{1-e^z}.
\end{aligned}
\]
分子分母约一个 \(z\),多项式求逆求出 \(F(z)\bmod z^{B+2}\) 即可。复杂度 \(\mathcal O(B\log B)\)。
Note -「广义二项级数」浅赏的更多相关文章
- Note -「Lagrange 插值」学习笔记
目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...
- Note -「动态 DP」学习笔记
目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...
- Note -「单位根反演」学习笔记
\(\mathcal{Preface}\) 单位根反演,顾名思义就是用单位根变换一类式子的形式.有关单位根的基本概念可见我的这篇博客. \(\mathcal{Formula}\) 单位根反演的 ...
- Note -「Mobius 反演」光速入门
目录 Preface 数论函数 积性函数 Dirichlet 卷积 Dirichlet 卷积中的特殊函数 Mobius 函数 & Mobius 反演 Mobius 函数 Mobius 反演 基 ...
- Note -「Min_25 筛」“你就说这素因子你要不要吧?你要不要?”
赛上想写,Track Lost 了属于是. \(\mathscr{Intro}\) Min_25 筛是用于求积性函数前缀和,同时顺带求出一些"有意思"的信息的筛法. 一 ...
- Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门
进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...
- Note -「圆方树」学习笔记
目录 圆方树的定义 圆方树的构造 实现 细节 圆方树的运用 「BZOJ 3331」压力 「洛谷 P4320」道路相遇 「APIO 2018」「洛谷 P4630」铁人两项 「CF 487E」Touris ...
- Note -「Dijkstra 求解 MCMF」
食用前请先了解 SPFA + Dinic/EK 求解 MCMF. Sol. 总所周知,SPFA 牺牲了.于是我们寻求一些更稳定的算法求解 MCMF. 网络流算法的时间属于玄学,暂且判定为混乱中的稳定. ...
- fir.im Weekly - 如何打造 Github 「爆款」开源项目
最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...
- NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立
http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...
随机推荐
- 【JVM第3课】运行时数据区
运行时数据区结构图如下: 可分为 5 个区域,分别是方法区.堆区.虚拟机栈.本地方法栈.程序计数器.这里大概介绍一下各个模块的作用,会在后面的文章展开讲. 类加载子系统会把类信息加载到方法区,程序运行 ...
- 利用DbgHelp获取线程的栈回溯信息
当线程发生异常时,我们如果可以记录下来异常线程的堆栈信息,那么对于我们后续问题处理将会有极大的帮助.这里记录一个操作方法. 1 #include <iostream> 2 #include ...
- 3-5&&6 C++数组遍历
遍历二维数组的三种方式 #include<iostream> #include<string> #include<vector> using namespace s ...
- 鸿蒙Navigation知识点详解
Navigation是路由导航的根视图容器,一般作为页面(@Entry)的根容器,包括单栏(Stack).分栏(Split)和自适应(Auto)三种显示模式.Navigation组件适用于模块内和跨模 ...
- 使用技巧 | 红米 Redmi Note 12 Turbo优化记录(去广告等)
原文链接:https://engapi.com/article/7569 原文也是我写的. 我的红米Redmi note8 pro 6+128已有些卡顿,遂在K70推出之际下单了Redmi Note ...
- 如何使用,操作Redis数据库
本博客不再维护,搬家到 http://zthinker.com .个人微信小程序(分布式编程) Redis是一个开源的内存中键值数据存储.Redis是NoSQL数据库,它不使用结构化查询语言,也称为S ...
- Jx.Cms开发笔记(三)-Views主题动态切换
效果展示 我们可以在后台动态切换主题 目前Jx.Cms有两个主题,其中一个是默认主题,另一个是仿的Blogs主题. 我们可以通过点击启用按钮来动态切换两个主题. 实现方法 首先写一个实现IViewLo ...
- 理解Flink之一编译Flink-1.11.1
下载源码 git clone -b release-1.11.1 https://github.com/apache/flink.git --depth=1 flink-1.11.1 编译 mvn c ...
- 九、Spring Boot集成Spring Security之授权概述
目录 前言 一.授权概述 二.用户权限 三.用户授权流程 三.Spring Security授权方式 1.请求级别授权 2.方法级别授权 前言 本文介绍什么是授权,Spring Security的授权 ...
- kube-apiserver 高可用,keepalived + haproxy
为什么要做高可用 在生产环境中,kubernetes 集群中会多多个 master 节点,每个 master 节点上都会部署 kube-apiserver 服务,实现高可用.但是 client 访问 ...