OI集训 Day16
Created|集训总结(2025暑)
|Word Count:867|Reading Time:4mins|Post Views:
Content:生成函数,多项式,期望
Date:2025.8.1
课堂内容
生成函数
定义
- 普通生成函数(OGF):普通生成函数的定义为形式幂级数:F(x)=i∑aixi
- 指数生成函数(EGF):指数生成函数的定义为形式幂级数:F(x)=i∑aii!xi
普通生成函数的基本运算
- F(x)±G(x)=i∑(ai±bi)xi
- F(x)G(x)=n∑xni=0∑naibn−i
- 封闭形式。e.g.
- F(x)=n≥0∑xn=1−x1
证明:F(x)=1+x+x2+x3+⋯+xnxF(x)=x+x2+x3+x4+⋯+x(n+1)∴F(x)−xF(x)=1→F(x)=1−x1
其他的普通生成函数也可以由这样的变换得到其封闭形式。
- F(x)=n≥0∑xn=1−x1
指数生成函数的基本运算
F(x)G(x)=i≥0∑aii!xij≥0∑bjj!xj=n≥0∑xni=0∑n(in)aibn−ii!(n−i)!1=n≥0∑n!xni=0∑n(in)aibn−i
即 F(x)G(x) 的结果是序列 i=0∑n(in)aibn−i 的指数生成函数。
例题
Luogu-P10780 BZOJ3028 食物
思路
我们把每个食物的生成函数学出来再相乘,得到:
==(1−x21)(x+1)(x2+x+1)(1−x2x)(1−x41)(x3+x2+x+1)(x+1)(1−x31)x4−4x3+6x2−4x+1x(x−1)4x
展开后得到:
n≥1∑6n(n+1)(n+2)xn
所以答案就为:6n(n+1)(n+2).最后,注意取模。
提交记录:link
CodeForces-280C Game On Tree
思路
由于期望具有线性性:
E(x+y)=E(x)+E(y)
所以答案就是每个点被选中的概率之和。
因为每个点被选中的概率只和这个点到根节点的长度为 dep(u) 的链有关(即 u 的祖先)。所以这个点被选中的概率即为 dep(u)1。答案即为:
u∑dep(u)1
提交记录:link
Author: FallenLeaf
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles
2025-07-27
OI集训 Day11
Content:矩阵 DP Date:2025.7.27 Review 矩阵基本操作:link Example1 - 洛谷-P1962 斐波那契数列 题目描述 给定 nnn,求斐波那契数列的第 nnn 项 fnf_nfn。 fn={1n=0,1fn−1+fn−2oterwisef_n = \begin{cases} 1 & n = 0,1 \\ f_{n-1} + f_{n-2} & oterwise \end{cases} fn={1fn−1+fn−2n=0,1oterwise 数据范围:n<263n < 2^{63}n<263。 思路 首先显然 O(n)O(n)O(n) 的递推是不行的了,我们考虑将递推式转化为矩阵乘法的形式: [fn−1fn−2]×[1101]=[fnfn−1][fn−2fn−3]×[1101]2=[fnfn−1]…[f0f1]×[1101]n−2=[fnfn−1]\begin{aligned} \begin{bmatrix} f_{n - 1} \\ f_{n - 2} \end{bmatrix}...
2025-07-31
OI集训 Day15
Content:组合数学 Date:2025.7.31 课堂内容 容斥原理 其主要思想为:把禁止违反哪些规则改为钦定违反了哪几条规则,并赋予 (−1)k(-1)^k(−1)k (即违反 kkk 条规则)的容斥系数。 二项式反演 g(n)=∑i=0n(ni)f(i)⇔f(n)=∑i=0n(−1)n−i(ni)g(i)g(n)=∑i=nN(in)f(i)⇔f(n)=∑i=nN(−1)i−n(in)g(i)\begin{aligned} g(n) &= \sum_{i=0}^n \binom{n}{i} f(i) \Leftrightarrow f(n) = \sum_{i=0}^n (-1)^{n-i} \binom{n}{i} g(i) \\ g(n) &= \sum_{i=n}^N \binom{i}{n} f(i) \Leftrightarrow f(n) = \sum_{i=n}^N (-1)^{i-n} \binom{i}{n} g(i) \end{aligned} g(n)g(n)=i=0∑n(in)f(i)⇔f(n)=i=0∑n(−1)n−i(...
2025-07-30
OI集训 Day14
Content:数论 Date:2025.7.30 课堂内容 莫比乌斯函数 定义如下: μ(n)={1n=1(−1)kn=p1p2p3…pk,∀pi∈P0otherwise\mu(n) = \begin{cases} 1 & n=1 \\ (-1)^k & n = p_1 p_2 p_3 \dots p_k, \forall p_i \in P \\ 0 & otherwise \\ \end{cases} μ(n)=⎩⎨⎧1(−1)k0n=1n=p1p2p3…pk,∀pi∈Potherwise 其中莫比乌斯函数有如下性质: ∑d∣nμ(d)=[n=1]\sum_{d|n} \mu(d) = [n=1] d∣n∑μ(d)=[n=1] 欧拉函数 定义如下: φ(n)=∑i=1n[gcd(n,i)=1]\varphi(n) = \sum_{i=1}^n [gcd(n,i)=1] φ(n)=i=1∑n[gcd(n,i)=1] 其中欧拉函数具有如下性质: ∑d∣nφ(d)=n\sum_{d|n} \varphi(d) = n d∣n∑φ(...

2025-08-08
OI集训 Day23
Content:交互、通信、提交答案题 Date:2025.8.8 题目 CodeForces-P1672E notepad.exe 题目大意 交互题。 有 nnn 个长度分别为 lil_ili 的单词,要求将这些单词排放在一个记事本当中,每两个单词之间需要空格(换行不需要)。你最多可以询问 n+30n+30n+30 次,每次可以询问一个宽度 www,裁判会告诉你至少需要高度为 hhh 的记事本才可以放下所有的单词,求 min{hw}\min\{ hw \}min{hw}。 思路 考虑先用 30 次找出将所有单词放在一行所需的最少宽度 w0w_0w0,然后对于每一个 1≤i≤n1 \le i \le n1≤i≤n,询问排列成 iii 行需要的最少行数,询问次数正好 n+30n + 30n+30 次。 提交记录:Link CodeForces-1010B Rocket 题目大意 交互题。 你可以问裁判 60 次问题,裁判会根据一个循环节长度为 nnn 的数组回答你的问题:如果 ai=0a_i = 0ai=0,则第 iii 次回答的是假话;如果 ai=1a_i = 1ai...
2025-07-20
OI集训 Day4
Content:Math Date:2025.7.20 内容 矩阵 线性方程组 行列式 矩阵树定理 线性基 具体内容 矩阵 矩阵定义 定义 将一些元素排列成若干行,每行放上相同数量的元素,就是一个矩阵 (Matrix)。 对于矩阵 AAA 的第 iii 行,第 jjj 列,我们记作 ai,ja_{i,j}ai,j 或 aija_{ij}aij。 对于举证 Am×nA_{m \times n}Am×n,如果 m=nm = nm=n,则我们称矩阵 AAA 为方阵。 矩阵基本操作 矩阵加法:对于矩阵 Am×nA_{m \times n}Am×n, Bm×nB_{m \times n}Bm×n, 我们定义矩阵加法为:Ci,j=Ai,j+Bi,j C_{i,j} = A_{i, j} + B_{i, j} Ci,j=Ai,j+Bi,j 即矩阵对应位置上的元素之和。 注意 只有当两个矩阵的大小相同时,才可以进行矩阵加法。 标量乘法:对于矩阵 Am×nA_{m \times n}Am×n 和标量 xxx, 我们定义矩阵的标量乘法为: Ci,j=Ai...
2025-07-17
OI集训 Day1
Content:Data Structs Date:2025.7.17 内容 并查集 ST表 线段树 关于树状数组 一维树状数组 单点修改,区间查询 对于这一类最普通的树状数组,没有什么好说的,直接维护前缀和即可。 struct BIT { long long tr[N]; static int lowbit(int x) { return x & (-x); } void add(int pos, long long value) { for (int i = pos; i <= n; i += lowbit(i)) tr[i] += value; } long long query(int pos) { long long retval = 0; for (int i = pos; i > 0; i -= lowbit(i)) retval += tr[i]; return retval; }} ...
Announcement
欢迎来到我的博客喵~
