乱七八糟的
\(\Large{\color{red}注意,本文作为个人笔记备份使用,有大量谬误和抽象逻辑,很多部分是十分久远之前写的,欢迎读者在评论区指出。}\)
数学
数论
1 费马小定理
- \(1.1 : \forall a \in N^*,p 为质数, 都有a^p \equiv a (mod\ p)\)
- 推论 \(1.1.1\):在 \(1.1\) 条件下,若 \(a\) 与 \(p\) 互质, 则有 \(a^{-1} \equiv 1 (mod\ p)\)
2 欧拉定理
- \(2.1 : \forall a \in N^*, 若 a 与 p 互质, 则有 a^{\varphi(p)} \equiv 1 (mod\ p)\)
- 推论 \(2.1.1: 在 2.1 条件下可推出\ a^b \equiv a^{b \mod \varphi(p)} (mod\ p)\), 其中 \(b \in N^*\).
- 推论 \(2.1.1.1\) : 当 \(p\) 为质数时,由 \(2.1.1\) 及 \(3.9\) 可得,\(a^b \equiv a^{b\mod(p - 1)}\)
- 推论 \(2.1.1: 在 2.1 条件下可推出\ a^b \equiv a^{b \mod \varphi(p)} (mod\ p)\), 其中 \(b \in N^*\).
3 欧拉函数
-
\(3.1 : \varphi(n) = n\prod_{p_i}(1 - \frac{1}{p_i}), 其中 p_i 为 n 的质因数\)
-
欧拉函数是积性函数,但不是完全积性函数,可以用线性筛求解。
-
\(3.2\) : 当 \(n\) 和 \(m\) 互质时, 有 \(\varphi(n) \times \varphi(m) = \varphi(nm)\).
-
\(3.3\) : 当 \(n > 1\) 时, \(n\) 的所有质因数和为 \(\frac{n\varphi(n)}{2}\).
-
\(3.4\) : 当 \(n = p^k\)时,\(\varphi(n) = p^k - p^{k - 1}\), 其中 \(p, k \in N^*\)
-
\(3.5\) : 当 \(n > 2\) 时,\(\varphi(n) \equiv 0\ (mod \ 2)\)
-
\(3.6\) : 当 \(p \mid n\) 且 \(p^2 \mid n\) 时,\(\varphi(n) = \varphi(\frac{n}{p}) \times p\), 其中 \(p \in N^*\).
-
\(3.7\) : 当 \(p \mid n\) 且 \(p^2 \nmid n\) 时,\(\varphi(n) = \varphi(\frac{n}{p}) \times (p - 1)\), 其中 \(p \in N^*\).
-
\(3.8\) : \(\sum_{d \mid n} \varphi(d) = n\)
-
\(3.9\) : 当 \(p\) 为素数时,\(\varphi(p) = p - 1\).
4 \(Wilson\) 定理
- \(4.1 : 设\ p\ 为一个质数,则有\ (p - 1)!\ \equiv -1\ (mod \ p)\)。
5 中国剩余定理
概率与期望
1 性质
-
\(1.1\) : 概率就是某个随机事件发生的可能,时间 \(A\) 的概率记作 \(P(A)\), 取值范围为 \([0,1]\).
-
\(1.2\) : 若 \(X\) 是一个离散型随机变量,可能值为 \(x_1, x_2, x_3, ..., x_n\), 对应的概率分别为 \(p_1, p_2, p_3, ..., p_n\), 则 \(X\) 的期望值 \(E(X) = \sum_{i = 1}^{n}p_ix_i\)
-
\(1.3\) : 期望具有线性性。
-
\(1.4\) : 设 \(X, Y\) 是两个随机变量,则有 \(E(X + Y) = E(X) + E(Y)\),两个变量不需要独立。
-
\(1.5\) : 设 \(X, Y\) 是两个独立的随机变量,则有 \(E(XY) = E(X)E(Y)\),不完全积性。
-
\(1.6\) : 设 \(X\) 是一个随机变量,\(a\) 为常数, 则 \(E(aX) = aE(X)\)
-
\(1.7\) : \(E(\sum_{i = 1}^{n}a_i x_i) = \sum_{i = 1}^{n}a_iE(x_i)\)
-
\(1.8\) : 若 \(k\) 为常数,则有 \(E(k) = k\).
2 求高阶矩
-
若关心的 \(X\) 可拆成 \(\sum_{i = 1}^{n} x_i\), 则:
-
\(2.1\) : \(\begin{aligned} E(X^2) &=E((\sum_{i = 1}^nx_i)^2)\\ &=E(\sum_{i = 1}^n\sum_{j = 1}^nx_ix_j)\\ &=\sum_{i = 1}^n\sum_{j = 1}^nE(x_ix_j) \end{aligned}\)
类似的,推得三阶矩为
- \(2.2\) : \(\begin{aligned} E(X^3) &=E((\sum_{i = 1}^nx_i)^3)\\ &=E(\sum_{i = 1}^n\sum_{j = 1}^n\sum_{k = 1}^nx_ix_jx_k)\\ &=\sum_{i = 1}^n\sum_{j = 1}^n\sum_{k = 1}^nE(x_ix_jx_k) \end{aligned}\)
3 方差
-
\(3.1\) : \(Var(X) = E((X - E(X)) ^ 2)\)
-
\(3.2\) : \(\begin{aligned} Var(X) &= E((X - E(X)))\\ &= E(X^2 - 2XE(X) + (E(X))^2) \\ &= E(X^2) + E(-2XE(X)) + E((E(X))^2) \\ &= E(X^2) + (-2E(X))E(X) + (E(X))^2 \\ &= E(X^2) + (E(X))^2 \\ &= E(X^2) + E^2(X) \end{aligned}\)
多项式
- \(f(x) = 0\) 的次数为 \(-\inf\).
- 多项式对于加法、减法、乘法、求导、积分都是封闭的
生成函数
普通生成函数\((OGF)\)
-
对于数列构造一个形式幂级数
-
对于一个数列 \(\{a_n\}\), 他的生成函数为 \(G(x) = \sum_{i = 0}^{+\inf}a_ix^i\)
1 基本性质
假设数列 \(\{a_n\}, \{b_n\}, \{c_n\}\) 的生成函数分别为 \(A(x), B(x), C(x)\)
-
\(1.1\) : 若 \(b_n = ka_n, 则\ B(x) = kA(x)\), 其中 \(k\) 为任意常数。
-
\(1.2\) : 若 \(c_n = a_n + b_n, 则\ C(x) = A(x) + B(x)\)
-
\(1.3\) : 若 \(c_n = \sum_{i = 0}^na_ib_{n - i}, 则\ C.(x) = A(x)B(x)\).
-
\(1.4\) : 若 \(b_n = \sum_{i = 0}^na_i, 则\ B(x) = \frac{A(x)}{1 - x}\).
-
\(1.5\) : 若 \(b_n = na_n, 则\ B(x) = xA'(x)\)
-
\(1.6\) : 若 \(b_n = \frac{a_n}{n + 1}, 则\ B(x) = \frac{\int A(x)dx}{x}\)
2 还原序列
-
\(2.1\) 设 \(f(x)\) 为数列 \(\{a_n\}\) 的生成函数, 函数中 \(x^n\) 的系数即为 \(a_n\), 记作 \([x^n]f(x)\).
-
\(2.1 \ E.g: [x^4]\frac{1}{1 - x} = 1^4 = 1, \ [x^6]\frac{1}{1 - 2x} = 2^6 = 64\)
-
\(2.2\) : 于是我们有 \([x^n]\frac{1}{1 - ax} = a^n\).
指数生成函数\((EGF)\)
1 基本性质
假设数列 \(a\{n\}, b\{n\}, c\{n\}\) 的生成函数分别为 \(A(x), B(x), C(x)\)
-
\(1.1\) : 若 \(b_n = ka_n, 则\ B(x) = kA(x)\), 其中 \(k\) 为任意常数。
-
\(1.2\) : 若 \(c_n = a_n + b_n, 则\ C(x) = A(x) + B(x)\)
组合数学
杂项
- 两数列卷积即为两数列生成函数相乘。
数据结构
图
E.g.1
\(G\) 是一个非连通简单无向图,没有自环和重边,共有 \(a\) 条边,则该图至少有多少个点。
方法:设至少有 \(n\) 个点,为了满足非连通,包含一个孤立点,其余 \(n - 1\) 个点构成完全图。
则可列出
\(\frac{(n - 1)(n - 2)}{2} = a\)
解方程即可。
E.g.2
考虑一个有 \(n\) 个点的有向连通图在邻接矩阵中表示,则邻接矩阵中的非零元素至少有 \(n\) 个
E.g.3
有 \(N\) 个点的强连通图至少有 \(N\) 条有向边。
两个要点:
- 强连通图,不是完全图,不是弱连通图
- 有向边
树
E.g.1
如果一棵二叉树只有根结点,那么这棵二叉树高度为 \(1\), 求高度为 \(n\) 的完全二叉树的形态数量。
完全二叉树就只考虑最底层的形态,首先求出最底层有 \(2^{n-1}\) 个节点,然后注意到最底层不能没有节点,同时也可以构成满二叉树,于是就有 \(2^{n-1}\) 种形态。
栈
链式栈
利用单链表构建栈,单链表最后一个元素就是栈顶
设栈顶指针为 \(hs\).
- 压入元素 \(s\):
s -> next = hs, hs = s - 弹出元素:
hs = hs -> next
Linux
终端
字符串
有长度为 \(|S|\) 的字符串,子串个数为 \(\frac{|S| \times (|S| + 1)}{2} + 1\),真子串减一即可。
位运算
基础位运算
- 按位取反:对每一位(包括符号位)取反
- 负号:取补码
进阶技巧
x &= x - 1每次使 \(x\) 最后一个 \(1\) 变为 \(0\)x ^ -x找到 \(x\) 最后一个 \(1\) 的位置x = -~x等价于x--等价于x = ~-x
杂项
E.g.1 指针
int y = 201;
int *p = &x;
int *q = &y;
p = q;
以上代码的行为是将 \(y\) 指向 \(x\) 的地址
E.g.2 哈夫曼
假设字母表 \({a,b,c,d,e}\) 在字符串出现的频率分别为 \(10\%,15\%,30\%,16\%,29\%\)。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 \(d\) 的编码长度为 \(2\) 位。
用优先队列维护当前所有子树,每次合并前两小,合并成的新子树入队,合并前的两个子树出队
- 中国计算机学会于 \(1984\) 年创办全国青少年信息学奥林匹克竞赛。
- 中国计算机学会于 \(1995\) 年创办全国青少年信息学奥林匹克联赛。
- 埃尼亚克 \(1946\) 年发明
蔡勒公式
\(W \equiv \lfloor \frac{C}{4} \rfloor - 2c + \lfloor \frac{Y}{4} \rfloor + Y + \lfloor \frac{13(M + 1)}{5} \rfloor + D - 1 \ (mod\ 7)\)
- \(C\): 年份前两位
- \(Y\): 年份后两位
- \(M\): 月,\(1,2\) 月按前一年的 \(13, 14\) 月计算
- \(D\): 日
源码:
# 数学
## 数论
### 1 费马小定理
- $1.1 : \forall a \in N^*,p 为质数, 都有a^p \equiv a (mod\ p)$
- 推论 $1.1.1$:在 $1.1$ 条件下,若 $a$ 与 $p$ 互质, 则有 $a^{-1} \equiv 1 (mod\ p)$
### 2 欧拉定理
- $2.1 : \forall a \in N^*, 若 a 与 p 互质, 则有 a^{\varphi(p)} \equiv 1 (mod\ p)$
- 推论 $2.1.1: 在 2.1 条件下可推出\ a^b \equiv a^{b \mod \varphi(p)} (mod\ p)$, 其中 $b \in N^*$.
### 3 欧拉函数
- $3.1 : \varphi(n) = n\prod_{p_i}(1 - \frac{1}{p_i}), 其中 p_i 为 n 的质因数$
- 欧拉函数是积性函数,但不是完全积性函数,可以用线性筛求解。
- $3.2$ : 当 $n$ 和 $m$ 互质时, 有 $\varphi(n) \times \varphi(m) = \varphi(nm)$.
- $3.3$ : 当 $n > 1$ 时, $n$ 的所有质因数和为 $\frac{n\varphi(n)}{2}$.
- $3.4$ : 当 $n = p^k$时,$\varphi(n) = p^k - p^{k - 1}$, 其中 $p, k \in N^*$
- $3.5$ : 当 $n > 2$ 时,$\varphi(n) \equiv 0\ (mod \ 2)$
- $3.6$ : 当 $p \mid n$ 且 $p^2 \mid n$ 时,$\varphi(n) = \varphi(\frac{n}{p}) \times p$, 其中 $p \in N^*$.
- $3.7$ : 当 $p \mid n$ 且 $p^2 \nmid n$ 时,$\varphi(n) = \varphi(\frac{n}{p}) \times (p - 1)$, 其中 $p \in N^*$.
- $3.8$ : $\sum_{d \mid n} \varphi(d) = n$
### 4 $Wilson$ 定理
- $4.1 : 设\ p\ 为一个质数,则有\ (p - 1)!\ \equiv -1\ (mod \ p)$。
### 5 中国剩余定理
## 概率与期望
### 1 性质
- $1.1$ : 概率就是某个随机事件发生的可能,时间 $A$ 的概率记作 $P(A)$, 取值范围为 $[0,1]$.
- $1.2$ : 若 $X$ 是一个离散型随机变量,可能值为 $x_1, x_2, x_3, ..., x_n$, 对应的概率分别为 $p_1, p_2, p_3, ..., p_n$, 则 $X$ 的期望值 $E(X) = \sum_{i = 1}^{n}p_ix_i$
- $1.3$ : 期望具有线性性。
- $1.4$ : 设 $X, Y$ 是两个随机变量,则有 $E(X + Y) = E(X) + E(Y)$,两个变量不需要独立。
- $1.5$ : 设 $X, Y$ 是两个独立的随机变量,则有 $E(XY) = E(X)E(Y)$,不完全积性。
- $1.6$ : 设 $X$ 是一个随机变量,$a$ 为常数, 则 $E(aX) = aE(X)$
- $1.7$ : $E(\sum_{i = 1}^{n}a_i x_i) = \sum_{i = 1}^{n}a_iE(x_i)$
- $1.8$ : 若 $k$ 为常数,则有 $E(k) = k$.
### 2 求高阶矩
- 若关心的 $X$ 可拆成 $\sum_{i = 1}^{n} x_i$, 则:
- $2.1$ : $\begin{aligned}
E(X^2) &=E((\sum_{i = 1}^nx_i)^2)\\
&=E(\sum_{i = 1}^n\sum_{j = 1}^nx_ix_j)\\
&=\sum_{i = 1}^n\sum_{j = 1}^nE(x_ix_j)
\end{aligned}$
类似的,推得三阶矩为
- $2.2$ : $\begin{aligned}
E(X^3) &=E((\sum_{i = 1}^nx_i)^3)\\
&=E(\sum_{i = 1}^n\sum_{j = 1}^n\sum_{k = 1}^nx_ix_jx_k)\\
&=\sum_{i = 1}^n\sum_{j = 1}^n\sum_{k = 1}^nE(x_ix_jx_k)
\end{aligned}$
### 3 方差
- $3.1$ : $Var(X) = E((X - E(X)) ^ 2)$
- $3.2$ : $\begin{aligned}
Var(X) &= E((X - E(X)))\\
&= E(X^2 - 2XE(X) + (E(X))^2) \\
&= E(X^2) + E(-2XE(X)) + E((E(X))^2) \\
&= E(X^2) + (-2E(X))E(X) + (E(X))^2 \\
&= E(X^2) + (E(X))^2 \\
&= E(X^2) + E^2(X)
\end{aligned}$
## 多项式
- $f(x) = 0$ 的次数为 $-\inf$.
- 多项式对于加法、减法、乘法、求导、积分都是封闭的
## 生成函数
### 普通生成函数$(OGF)$
- 对于数列构造一个形式幂级数
- 对于一个数列 $\{a_n\}$, 他的生成函数为 $G(x) = \sum_{i = 0}^{+\inf}a_ix^i$
#### 1 基本性质
假设数列 $\{a_n\}, \{b_n\}, \{c_n\}$ 的生成函数分别为 $A(x), B(x), C(x)$
- $1.1$ : 若 $b_n = ka_n, 则\ B(x) = kA(x)$, 其中 $k$ 为任意常数。
- $1.2$ : 若 $c_n = a_n + b_n, 则\ C(x) = A(x) + B(x)$
- $1.3$ : 若 $c_n = \sum_{i = 0}^na_ib_{n - i}, 则\ C.(x) = A(x)B(x)$.
- $1.4$ : 若 $b_n = \sum_{i = 0}^na_i, 则\ B(x) = \frac{A(x)}{1 - x}$.
- $1.5$ : 若 $b_n = na_n, 则\ B(x) = xA'(x)$
- $1.6$ : 若 $b_n = \frac{a_n}{n + 1}, 则\ B(x) = \frac{\int A(x)dx}{x}$
#### 2 还原序列
- $2.1$ 设 $f(x)$ 为数列 $\{a_n\}$ 的生成函数, 函数中 $x^n$ 的系数即为 $a_n$, 记作 $[x^n]f(x)$.
- $2.1 \ E.g: [x^4]\frac{1}{1 - x} = 1^4 = 1, \ [x^6]\frac{1}{1 - 2x} = 2^6 = 64$
- $2.2$ : 于是我们有 $[x^n]\frac{1}{1 - ax} = a^n$.
### 指数生成函数$(EGF)$
#### 1 基本性质
假设数列 $a\{n\}, b\{n\}, c\{n\}$ 的生成函数分别为 $A(x), B(x), C(x)$
- $1.1$ : 若 $b_n = ka_n, 则\ B(x) = kA(x)$, 其中 $k$ 为任意常数。
- $1.2$ : 若 $c_n = a_n + b_n, 则\ C(x) = A(x) + B(x)$
## 组合数学
## 杂项
- 两数列卷积即为两数列生成函数相乘。
# 数据结构
## 图
### E.g.1
$G$ 是一个非连通简单无向图,没有自环和重边,共有 $a$ 条边,则该图至少有多少个点。
方法:设至少有 $n$ 个点,为了满足非连通,包含一个孤立点,其余 $n - 1$ 个点构成完全图。
则可列出
$\frac{(n - 1)(n - 2)}{2} = a$
解方程即可。
### E.g.2
考虑一个有 $n$ 个点的有向连通图在邻接矩阵中表示,则邻接矩阵中的非零元素至少有 $n$ 个
### E.g.3
有 $N$ 个点的强连通图至少有 $N$ 条有向边。
两个要点:
1. 强连通图,不是完全图,不是弱连通图
2. 有向边
## 树
### E.g.1
如果一棵二叉树只有根结点,那么这棵二叉树高度为 $1$, 求高度为 $n$ 的完全二叉树的形态数量。
完全二叉树就只考虑最底层的形态,首先求出最底层有 $2^{n-1}$ 个节点,然后注意到最底层不能没有节点,同时也可以构成满二叉树,于是就有 $2^{n-1}$ 种形态。
## 栈
### 链式栈
利用单链表构建栈,单链表最后一个元素就是栈顶
设栈顶指针为 $hs$.
- 压入元素 $s$: `s -> next = hs, hs = s`
- 弹出元素: `hs = hs -> next`
# Linux
## 终端
# 字符串
有长度为 $|S|$ 的字符串,子串个数为 $\frac{|S| \times (|S| + 1)}{2} + 1$,真子串减一即可。
# 位运算
## 基础位运算
- 按位取反:对每一位(包括符号位)取反
- 负号:取补码
## 进阶技巧
- `x &= x - 1` 每次使 $x$ 最后一个 $1$ 变为 $0$
- `x ^ -x` 找到 $x$ 最后一个 $1$ 的位置
- `x = -~x` 等价于 `x--` 等价于 `x = ~-x`
-
# 杂项
## E.g.1 指针
int x = 101;
int y = 201;
int *p = &x;
int *q = &y;
p = q;
以上代码的行为是将 $y$ 指向 $x$ 的地址
## E.g.2 哈夫曼
假设字母表 ${a,b,c,d,e}$ 在字符串出现的频率分别为 $10\%,15\%,30\%,16\%,29\%$。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 $d$ 的编码长度为 $2$ 位。
用优先队列维护当前所有子树,每次合并前两小,合并成的新子树入队,合并前的两个子树出队
- 中国计算机学会于 $1984$ 年创办全国青少年信息学奥林匹克竞赛。
- 中国计算机学会于 $1995$ 年创办全国青少年信息学奥林匹克联赛。
- 埃尼亚克 $1946$ 年发明
## 蔡勒公式
$W \equiv \lfloor \frac{C}{4} \rfloor - 2c + \lfloor \frac{Y}{4} \rfloor + Y + \lfloor \frac{13(M + 1)}{5} \rfloor + D - 1 \ (mod\ 7)$
- $C$: 年份前两位
- $Y$: 年份后两位
- $M$: 月,$1,2$ 月按前一年的 $13, 14$ 月计算
- $D$: 日

浙公网安备 33010602011771号