09 2024 档案
摘要:【计算几何】凸包问题 (Convex Hull) 引言 凸多边形 凸多边形是指所有内角大小都在 范围内的简单多边形 凸包 在平面上能包含所有给定点的最小凸多边形叫做凸包。 其定义为:对于给定集合 X,所有包含 X 的凸集的交集 S 被称为 X 的 凸包。 实际上可以理解为用一个橡皮筋
阅读全文
摘要:树状数组(Binary Indexed Tree, BIT) 树状数组(Binary Indexed Tree, BIT),也称为 Fenwick Tree,是一种用于高效处理数组前缀和查询和单点更新的数据结构。它能够在 (O(\log n)) 时间内完成单点更新和前缀和查询操作。 基本概念 前缀和
阅读全文
摘要:逆序对 题目描述 猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。 最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 且 \
阅读全文
摘要:Tarjan算法详解 参考文章:强连通分量 Tarjan算法是一种用于寻找有向图中强联通分量(Strongly Connected Components, SCCs)的算法。它是由Robert Tarjan在1972年提出的,基于深度优先搜索(DFS)和栈的数据结构。 基本概念 强联通分量:在一个有
阅读全文
摘要:Tarjan算法缩点 一.Tarjan算法缩点详解 在图论中,缩点是指将有向图中的强联通分量(SCCs)缩成单个节点,从而得到一个更简单的图结构,称为缩点图或SCC图。Tarjan算法不仅可以用来寻找强联通分量,还可以用来进行缩点操作。 基本概念 强联通分量:在一个有向图中,如果一组节点中任意两个节
阅读全文
摘要:割边(Bridge) 在图论中,割边(Bridge)是指在一个无向图中,如果删除某条边会导致图的连通分量数量增加,那么这条边就被称为割边。换句话说,割边是连接两个不同连通分量的边。 性质 连通性:删除割边会使得图的连通性降低,即原本连通的节点变得不连通。 无向图:割边的概念主要应用于无向图。 桥的检
阅读全文
摘要:割点(Articulation Point) 在图论中,割点(Articulation Point)是指在一个无向图中,如果删除某个节点及其关联的边会导致图的连通分量数量增加,那么这个节点就被称为割点。换句话说,割点是图中的一个节点,删除它会使图变得不连通或减少连通分量的数量。 性质 连通性:删除割
阅读全文
摘要:题解: 更新: k=1的时候要乘n 代码: #include<bits/stdc++.h> #define int long long using namespace std; const int N=5e3+5; typedef long long ll; typedef pair<int,int
阅读全文
摘要:差分约束系统 参考博客: oiwiki 博客园 差分约束系统 定义 差分约束系统是一种特殊的 元一次不等式组,它包含 个变量 以及 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \(x_i - x_j
阅读全文
摘要:Kruskal 重构树 定义 在跑 Kruskal 的过程中我们会从小到大加入若干条边。现在我们仍然按照这个顺序。 首先新建 个集合,每个集合恰有一个节点,点权为 。 每一次加边会合并两个集合,我们可以新建一个点,点权为加入边的边权,同时将两个集合的根节点分别设为新建点的左儿子
阅读全文