![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习笔记
AoiDragon
这个作者很懒,什么都没留下…
展开
-
【算法学习笔记】强连通分量
一、强连通分量在有向图中,如果既存在从顶点vi到vj的路径也存在从vj到vi的路径,我们就称vi, vj两点强连通。任意两点强连通的有向图被称为强连通图,有向图的最大强连通子图被称为强连通分量(Strongly Connected Components)。这里介绍求解强连通分量的Tarjan算法。Tarjan算法是基于dfs的,对一张图进行dfs后,我们会得到一颗搜索树。有向图的搜索树可以分为四种树边(实线):每找到一个还未访问过的节点就形成一条树边。回边(长虚线):指向祖先节点的边。横叉边原创 2020-11-02 20:51:55 · 901 阅读 · 0 评论 -
【算法学习笔记】线段树
【算法学习笔记】线段树线段树是用来维护区间信息的数据结构,可以在O(logN)内进行区间修改,区间查询等操作。结合代码进行说明#include<cstdio>using namespace std;//树节点//线段树的每一个节点代表一个区间//根节点覆盖整个区间,其左儿子覆盖该区间的左半部分,右儿子覆盖右半部分//以此类推,叶子节点只覆盖一个点struct node{ int l, r;//覆盖区间范围 long long val, lazy;}tree[40000原创 2020-10-30 15:32:33 · 168 阅读 · 0 评论