摘要: 什么是线段树 线段树,是一种 二叉搜索树 。它将一段区间划分为若干 单位区间 ,每一个节点都储存着一个区间。它 功能强大 ,支持区间求和,区间最大值,区间修改,单点修改等操作。 线段树的思想和分治思想很相像。 线段树的每一个节点都储存着一段区间 \([L..R]\) 的信息,其中 叶子节点 \(L= 阅读全文
posted @ 2022-03-06 18:01 PassName 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 由于本人博客模板特殊,为了更好地阅读体验,请将阅读模式调成白天。 树状数组基础 树状数组是一个查询和修改复杂度都为log(n)的数据结构。主要用于数组的单点修改&&区间求和. 另外一个拥有类似功能的是线段树. 具体区别和联系如下: 1.两者在复杂度上同级, 但是树状数组的常数明显优于线段树, 其编程 阅读全文
posted @ 2022-03-06 16:25 PassName 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作: 合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。 并查集的引入 并查集的重要思想在于,用集合中的一个元素代表集合 阅读全文
posted @ 2022-03-06 13:37 PassName 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 什么是拓扑排序? 维基百科对于拓扑排序有如下定义: a topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every dire 阅读全文
posted @ 2022-03-05 22:24 PassName 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 定义: 欧拉回路:每条边恰好只走一次,并能回到出发点的路径 欧拉路径:经过每一条边一次,但是不要求回到起始点 ①首先看欧拉回路存在性的判定: 一、无向图 每个顶点的度数都是偶数,则存在欧拉回路。 二、有向图(所有边都是单向的) 每个节顶点的入度都等于出度,则存在欧拉回路。 三.混合图欧拉回路 混合图 阅读全文
posted @ 2022-03-05 22:02 PassName 阅读(636) 评论(0) 推荐(0) 编辑
摘要: S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N。 他们之间的关系自然也极不和谐。 很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。 我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。 如果两名怨气值为 c 的罪犯被关 阅读全文
posted @ 2022-03-05 21:47 PassName 阅读(49) 评论(0) 推荐(0) 编辑
摘要: Tarjan 算法简介 Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度。 我们定义: 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大 阅读全文
posted @ 2022-03-05 19:47 PassName 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 简介 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路 阅读全文
posted @ 2022-03-05 17:09 PassName 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 浅谈差分约束 差分约束系统是一种特殊的 $n$ 元一次不等式组,它包含 $n$ 个变量 $x_1,x_2,...,x_n $ 以及 $m$ 个约束条件,每个约束条件是由两个其中的变量做差构成的 形如 $x_i−x_j≤c_k$ , 其中 $1≤i,j≤n,i≠j,1≤k≤m$ 并且 $c_k$ 是常 阅读全文
posted @ 2022-03-05 16:07 PassName 阅读(46) 评论(0) 推荐(0) 编辑
摘要: typeid是c++的关键字,typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义) ISO C++标准并没有确切定义type_info,它的确切定义编译器相关的,但是标准却规定了其实现必需提供如下四种操作: type_info类提供了publ 阅读全文
posted @ 2022-02-12 20:47 PassName 阅读(64) 评论(0) 推荐(0) 编辑