摘要: 并查集 概述 并查集主要用于对于多个集合的从属关系维护 它有两个基本操作 查询当前所在集合 合并两个集合 通过并查集,我们可以对许许多多的问题进行优化,比如树上跳链等等 并查集能够在一张无向图里维护节点连通性,事实上,并查集擅长维护许多具有传递性的关系 基本操作 实现: 我们对于每一个集合采用代表元 阅读全文
posted @ 2022-11-30 22:26 spdarkle 阅读(19) 评论(0) 推荐(0) 编辑
摘要: SG函数 NIM博弈 概述:有$n$堆物品,每堆物品有$A[i]$个,有两名玩家轮流操作,每一次都可以在其中一堆拿任意多个,但不能不拿,取走最后一件物品者获胜,在双方都使用最优策略的情况下,问先手是否必胜 定理: $nim$游戏先手必胜,当且仅当 $$\bigoplus_{i=1}^n A[i]\n 阅读全文
posted @ 2022-11-30 22:25 spdarkle 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 0/1分数规划 $0/1$分数规划模型是指,给定:$a_1\sim a_n,b_1\sim b_n$,要构造$x_1\sim x_n(\forall i\in[1,n],x_i=0\text{或}1)$ 使得 $$\frac{\sum_{i=1}^na_ix_i}{\sum_{i=1}^nb_ix_ 阅读全文
posted @ 2022-11-30 22:24 spdarkle 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 期望 概率与数学期望 在概率论中,我们把一个随机实验的某种可能的结果称为样本点,把所有可能的结果构成的集合称为样本空间,在一个给定的样本空间中,随机事件就样本空间的自己,即若干个样本点构成的集合,随机变量就是把样本点映射为实数的函数,随机变量分为离散型和连续性两种,我们主要讨论离散型随机变量,即取值 阅读全文
posted @ 2022-11-30 22:24 spdarkle 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 容斥与莫比乌斯函数 容斥原理: 介绍:设集合$S_1\sim S_n$,记$|S_i|$表示集合$S_i$的大小,设$\cup$表示集合的并集运算,$\cap$表示集合的交集运算,则 $$ \left|\bigcup_{i=1}^nS_i\right|=\sum_{i=1}^n|S_i|-\sum_ 阅读全文
posted @ 2022-11-30 22:23 spdarkle 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 简单组合计数 组合计数基础 几个原理: 1.加法原理:若完成一件事有$n$类不同的方法,第$i$类方法有$a_i$种方法,且这些方法互不重合则完成这件事共有$\sum_{i=1}^na_i$种方法 2.乘法原理:若完成一件事有$n$个不同的步骤,每个步骤有$a_i$种完成方法,且互不干扰,则完成该件 阅读全文
posted @ 2022-11-30 22:23 spdarkle 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 数论分块 数论分块 也叫整除分块 是用于快速处理类似于 $$\sum_{i=1}^n \lceil \frac{n}{i} \rceil \text{或者} \sum_{i=1}^n \lfloor \frac{n}{i} \rfloor$$ 式子的一种方法 复杂度:$O(\sqrt{n})$ 思想 阅读全文
posted @ 2022-11-30 22:23 spdarkle 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 高斯消元与线性基 Guass—约旦消元 消元算法 简介:这是求解线性方程组(也就是M个N元一次方程组)的方法 思想:我们可以把方程组看作一个系数矩阵 例如: $$ \left{ \begin{aligned} 2x_1+x_2&-3x_3+x_4&=&2 \ -x_1-6x_2&+2x_3-x_4& 阅读全文
posted @ 2022-11-30 22:22 spdarkle 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法 定义,设A是$m\times n$矩阵,B是$n \times p$矩阵,则$C=A\times B$是一个$m\times p$矩阵 性质: $A\times B$不一定等于$B\times A$, $(A\times B) \times C=A\times (B\times C)$, 阅读全文
posted @ 2022-11-30 22:22 spdarkle 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 约数与同余 质数 1.质数分布定理:在$1\sim N$中大约有$\frac{x}{\ln x}$个,N越大越精准 2.判断n为质数的方法:试除法:(可以顺带求出约数集合) int t=sqrt(n); if(n<2)return false; for(int i=2;i<=t;i++){ if(n 阅读全文
posted @ 2022-11-30 22:21 spdarkle 阅读(63) 评论(0) 推荐(0) 编辑