- 博客(3)
- 收藏
- 关注
原创 【算法学习笔记】强连通分量
一、强连通分量在有向图中,如果既存在从顶点vi到vj的路径也存在从vj到vi的路径,我们就称vi, vj两点强连通。任意两点强连通的有向图被称为强连通图,有向图的最大强连通子图被称为强连通分量(Strongly Connected Components)。这里介绍求解强连通分量的Tarjan算法。Tarjan算法是基于dfs的,对一张图进行dfs后,我们会得到一颗搜索树。有向图的搜索树可以分为四种树边(实线):每找到一个还未访问过的节点就形成一条树边。回边(长虚线):指向祖先节点的边。横叉边
2020-11-02 20:51:55
899
原创 【算法学习笔记】线段树
【算法学习笔记】线段树线段树是用来维护区间信息的数据结构,可以在O(logN)内进行区间修改,区间查询等操作。结合代码进行说明#include<cstdio>using namespace std;//树节点//线段树的每一个节点代表一个区间//根节点覆盖整个区间,其左儿子覆盖该区间的左半部分,右儿子覆盖右半部分//以此类推,叶子节点只覆盖一个点struct node{ int l, r;//覆盖区间范围 long long val, lazy;}tree[40000
2020-10-30 15:32:33
167
原创 【 AoiDragonの每日一题(大嘘】洛谷P3397 地毯(差分)
【 AoiDragonの每日一题(大嘘】洛谷P3397 地毯(差分)题目传送门首先介绍一下差分。给定一串数字序列:1 3 2 4 5 7 6差分就是将序列的每一位与前一位做差得到的结果。1 2 -1 2 1 2 -1 -6差分序列比原序列多一位(0减去最后一位)。差分序列最重要的性质在于它的前缀和等于原序列。回到题目,最朴素的想法是将每次给出的地毯范围内的数组元素++,但这么暴力的做法怎么想都会超时。而如果运用差分,我们便无须标记范围内的所有元素。对于用例2 2 3 3我们可以对原
2020-10-07 21:33:48
252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人