OI集训 Day15
Created|集训总结(2025暑)
|Word Count:424|Reading Time:1mins|Post Views:
Content:组合数学
Date:2025.7.31
课堂内容
容斥原理
其主要思想为:把禁止违反哪些规则改为钦定违反了哪几条规则,并赋予 (−1)k (即违反 k 条规则)的容斥系数。
二项式反演
g(n)g(n)=i=0∑n(in)f(i)⇔f(n)=i=0∑n(−1)n−i(in)g(i)=i=n∑N(ni)f(i)⇔f(n)=i=n∑N(−1)i−n(ni)g(i)
例题
Luogu-P1450 [HAOI2018] 硬币购物
题目大意
给定硬币面值 c1,c2,c3,c4 和硬币个数 d1,d2,d3,d4,求恰好凑齐 s 元的方案数。T 组询问。
思路
首先我们可以对硬币做完全背包,这样我们就知道了用这些硬币可以凑出那些。
然后带上限制条件,做容斥即可。
提交记录:link
AGC005D ~K Perm Counting
题目大意
给定 N,K,求所有满足 ∣ai−i∣=k 的长度为 N 的排列的个数。
思路
参考 Dreamunk 大佬的题解。将所有的不合法的情况之间连边,我们就得到了若干条不合法的链,对这些链进行 DP 后,就可以容斥了。
提交记录: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-08-01
OI集训 Day16
Content:生成函数,多项式,期望 Date:2025.8.1 课堂内容 生成函数 定义 普通生成函数(OGF):普通生成函数的定义为形式幂级数:F(x)=∑iaixi\displaystyle F(x) = \sum_{i} a_i x^iF(x)=i∑aixi 指数生成函数(EGF):指数生成函数的定义为形式幂级数:F(x)=∑iaixii!\displaystyle F(x) = \sum_{i} a_i \frac{x^i}{i!}F(x)=i∑aii!xi 普通生成函数的基本运算 F(x)±G(x)=∑i(ai±bi)xi\displaystyle F(x) \pm G(x) = \sum_{i} (a_i \pm b_i) x^iF(x)±G(x)=i∑(ai±bi)xi F(x)G(x)=∑nxn∑i=0naibn−i\displaystyle F(x)G(x) = \sum_{n} x^n \sum_{i=0}^n a_i b_{n-i}F(x)G(x)=n∑xni=0∑naibn−i 封闭形式。e.g. F(x)=∑n≥0x...
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
欢迎来到我的博客喵~
