图论

树链剖分解决什么问题?

一、什么是树链剖分什么是树链剖分?它可以把树分成若干条链,从而维护树上的路径信息。本质思想是把树剖成可以用线性结构存储的结构,然后可以数据结构维护。分为三种:重链剖分、长链剖分、实链剖分。以下以重链剖分为主。二、树链剖分的思想及能解决的问题重链剖分可以将树上的任意一条路径划分成不超过O(logn)条连

树的基础知识

一、什么是树树是一种类似链表的数据结构,不过链表的结点是以线性方式简单地指向其后继指点,而树的一个结点可以指向许多个结点。树是一种典型的非线性结构。树结构是表达具有层次特性的图结构的一种方法。二、相关术语●根结点:根结点就是一个没有双亲结点的结点。

树哈希常用的方式

树哈希,顾名思义,对树进行哈希,经常判断两个树是否同构。一下均为对有根树的算法,而无根树只需要找重心。我们有时需要判断一些树是否同构。这时,选择恰当的哈希方式来将树映射成一个便于储存的哈希值(一般是32位或64位整数)是一个优秀的方案。树哈希有很多种哈希方式,下面将选出几种较为常用的方式来加以介绍。

什么是树上随机游走?

什么是树上随机游走?我们可以假设给定一棵树,树的某个结点上有一个硬币,在某一时刻硬币会等概率地移动到邻接结点上,问硬币移动到邻接结点上的期望距离。1.树上随机游走用到的定义:●所讨论的树●结点的度数●结点与v结点之间的边的边权●结点的父结点●结点的子结点集合●结点的兄弟结点集合2.向父结点走的期望距离

简述LGV引理

LGV引理可以用于在DAG上求解不相交路径方案数问题,下面我们简单介绍一下。一、简介LGV引理英文全称是Lindström–Gessel–Viennotlemma,可以用来处理有向无环图上不相交路径计数等问题。在此之前,大家要先了解图论相关概念、矩阵、高斯消元求行列式等知识,

树上启发式合并

启发式算法是什么呢?启发式算法是基于人类的经验和直观感觉,对一些算法的优化。最常见的就是并查集的按秩合并了,有带按秩合并的并查集中,合并的代码是这样的:voidmerge(intx,inty){intxx=find(x),yy=find(y);if(size[xx]<size[yy])swap(xx,

什么是差分约束系统?

什么是差分约束系统?差分约束系统是一种特殊的N元一次不等式组,它包含N个变量以及M个约束条件,每个约束条件都是由两个变量作差得到的,形如,其中是常数。我们根据题目要求,并用这M个约束条件求出某个不等式的最值,例如的最大值。怎么解?转化:把上面不等式稍微变形一下可以得到,

图论矩阵树定理实例讲解

矩阵树定理也称Matrix-Tree定理或Kirchhoff定理。这个定理提供了一种方式使用一个特殊的矩阵的行列式来计算一个图的生成树的数量。对于一个无向图来说,我们可以构造它的Laplace矩阵L,其中:如果节点i有度为d,那么L[i,i]=d如果节点i和节点j之间有边相连,

树的直径实例讲解

首先先介绍一下什么是树的直径,树的直径,又称树的最长链,定义为一棵树上最远的两个节点的路径,即树上一条不重复经过某一条边的最长的路径。树的直径也可以代指这条路径的长度,总的来说树的直径就是树中所有最短路经距离的最大值。求树的直径有两种比较常用的方法:一种是通过两次搜索(bfs和dfs均可),

最大流是什么?

一、流网络G=(V,E)是一个有向图,其中每条边(u,v)有一个非负的容量值c(u,v),而且如果E中包含一条边(u,v),那么图中就不存在它的反向边。在流网络中有两个特殊的结点,源结点s和汇点t。下面给出流网络的形式化定义。令G=(V,E)为一个流网络,其容量函数为c,设s我为网络的源点,t为汇点。