随笔分类 - 笔记
摘要:bitset 本质上是一个二进制串,优点是时间和空间复杂度都带有 \(\frac{1}{w}\) 的常数。 成员函数: b.set() 全部赋值为 \(1\)。 b.reset() 全部赋值为 \(0\)。 b.flip() 将每一位取反。 b.count() 返回有多少个 \(1\)。 b.any
阅读全文
摘要:二分图博弈 给定一张二分图,有一个起始点 \(a\)。两个人轮流选择一个点,这个点需要满足:之前没被选过,且与上一次选择的点有直接连边。谁先不能选择则为输。 结论:如果二分图的所有最大匹配都必须包含点 \(a\),那么先手必胜,否则后手必胜。 证明: 二分图的所有最大匹配都必须包含点 \(a\),那
阅读全文
摘要:今天在做 ABC318G 这道题,要用到圆方树的知识,于是就去学了圆方树。 学习圆方树首先需要学习点双连通分量以及缩点,此处不多赘述。 圆方树中分两种类型的点:圆点和方点。圆点指的是原来的无向图中的所有点,而方点指的是每一个点双连通分量所代表的点。相当于每一个点双连通分量就是一个方点。将每一个方点向
阅读全文
摘要:参考文章:时间复杂度及主定理详解,托比欧:主定理 Master Theorem。 简介 在算法分析中,主定理(英语:master theorem)提供了用渐近符号表示许多由分治法得到的递推关系式的方法。 在初赛题目中,主定理可以用来计算形如 \(T(n)=a\times T(n/b) + O(n^{
阅读全文
摘要:前言 2023.8.30 开始停课集训。 开始补 \(CSP-S\) 的知识点,先打算来学状压 \(DP\)。 定义 状压 \(DP\) 的全称是状态压缩动态规划,也是动态规划中的一种。但是其与普通 \(DP\) 不同的是它将某种状态(一般为二进制 \(01\) 串,\(1\) 表示选,\(0\)
阅读全文
摘要:这里讲一下 \(tarjan\) 算法。主要包括有向图的强连通分量,无向图的边双连通分量与点双连通分量以及缩点。 有向图的强连通分量 首先我们需要了解几个定义。(以下说法均针对有向图) 连通分量:在一个块中,任意两个点之间能够互相到达。即 \(u\) 能到 \(v\),\(v\) 也能到 \(u\)
阅读全文
摘要:定义 分块是一种将一些东西分成若干块的一种思想,有分块,数论分块(可能不太算),树分块等等。而分块的这种思想可以优化时间复杂度,一般情况下为 \(O( \sqrt n)\),具体取决于块长的大小。 分块 对数组是分块当中最简单一种。首先我们设块长为 \(s\),那么数组一共就被分成了\(n/s\)
阅读全文
摘要:前言 蒟蒻刚刚开始学矩阵,有些东西可能理解得不是特别好。 矩阵的定义 在 \(c\)++ 中,矩阵其实就是一个 \(n*m\),可以做运算的二维数组。也是运算的中的一种基本单位。 特殊的矩阵 在矩阵的运算过程中,可能会用到一些特殊的矩阵的名称,以下是比较常见的一些特殊矩阵: 同型矩阵:两个矩阵,行数
阅读全文
摘要:模板题:P4779 Dijkstra算法 \(Dijstra\)算法是一种求解非负权图上单源最短路径的算法,这种算法不可以解决负环问题。 做法 首先要定义松弛操作。对于一条边(\(u,v\)),松弛操作对应下面的运算:\(dis_{v}\) = \(dis_{u}\) + \(w_{u,v}\)。
阅读全文
摘要:模板题:P3865 定义 \(ST\)表是一种解决可重复贡献的问题的数据结构。可重复贡献问题大致指,对于一种运算,重复这种运算并不影响最终的答案,比如\(max(a,a) = a\),\(gcd(a,a) = a\)。常见的可重复贡献问题有:区间\(max\),区间\(min\),区间\(gcd\)
阅读全文
摘要:本篇文章中的所有模板题代码 网络流的概念及定理 流网络 流网络是指一个有向图 \(G\),由点集 \(V\) 和边集 \(E\) 组成,其中有一个源点 \(s\) 和一个汇点 \(t\)。每条边有一个属性称为容量 \(c(u,v)\),每条边也有一个流量 \(f(u,v)\),边的流量大于等于 \(
阅读全文