本博客只适于普及组二等奖食用 oj:https://loj.ac/problems , https://www.luogu.com.cn/ 目录: 单源最短路径 ST表 树状数组1 树状数组2 线段树1 线段树2 缩点(Tarjan) 割点(割顶) LCA 平衡树 负环 差分约束系统 矩阵快速幂 矩 ...
分类:
其他好文 时间:
2020-02-28 15:43:27
阅读次数:
68
ST表算法入门详解 关于ST表,有很多文章,这里本蒟蒻也来发一波~~ 希望能为您提供帮助~~ 1.ST表的介绍 ST表算法全称Sparse-Table算法,是由Tarjan提出的一种解决RMQ问题(区间最值)的强力算法。离线预处理时间复杂度 θ(nlogn),在线查询时间 θ(1),可以说是一种非常 ...
分类:
编程语言 时间:
2020-02-25 12:57:11
阅读次数:
101
概念: 割点:在一个无相连通图中,如果删除某个顶点后,图不再连接(即任意两点之间不再相互到达),我们称这样的顶点为割点(或者称为割顶)。 思考: 很容易想到的方法是:以此删除每个顶点,然后用深度优先搜索或者广度优先搜索来检查图是否依然连通。如果删除某个顶点后,,导致图不再联通,那么刚才删除的顶点就是 ...
分类:
其他好文 时间:
2020-02-20 19:59:09
阅读次数:
109
概念: 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 注:强联通分量仅仅是对有向图来说。 代码 ...
分类:
编程语言 时间:
2020-02-19 23:42:40
阅读次数:
83
B.Harborfan的新年拜访Ⅱ 就是一道tarjan缩点的裸题。 建图比较麻烦 以后遇到这种建图,先用循环把样例实现出来,再对着循环写建图公式 #include<bits/stdc++.h> using namespace std; const int maxn=1014; vector<int ...
分类:
其他好文 时间:
2020-02-19 19:08:54
阅读次数:
80
Algorithm 基本数据结构: "Trie(字典树)" "贪心" "高精度" "位运算" "C++STL" 数据结构进阶: "线段树" 数论: "康拓展开 & 逆康拓展开" 图论: "图论 二分图" "图论 最短路" "图论 最小生成树" "图论 Tarjan" "图论 树的直径" Contes ...
分类:
其他好文 时间:
2020-02-17 17:46:07
阅读次数:
50
双连通图:无向图中每两个顶点都存在完全不同的两条路径 给定一个无向图,问要给它增加多少条边可以把它变成双连通图。 用tarjan缩点,可以得到一棵树,添加(叶子结点+1)/2条边可以使其成环,也就是答案~ 为了避开重边,这题用邻接矩阵存,wa了一晚上QAQ~ #include<cstdio> #in ...
分类:
其他好文 时间:
2020-02-15 20:37:22
阅读次数:
66
"题面" 题解 结论题 第一问直接 tarjan 第二问就是 tarjan 后缩点, DAG 中入度为 0 的点和出度为 0 的点的个数取 $min$ Code ...
分类:
Web程序 时间:
2020-02-11 20:46:45
阅读次数:
86
显然如果走到一个SCC里,那么可以把这个SCC里的权值反复走取完 连接SCC之间的边显然只能走一次(缩点后是DAG) 那么我们tarjan缩点,然后在DAG上DP,就是个带权最长路,随便DP一下就行了 边权就是w,点权需要另外计算 对每个SCC内部的边,假设边权为\(w\),那么下降次数是满足\(\ ...
分类:
其他好文 时间:
2020-02-11 11:31:29
阅读次数:
49
题目背景 缩点+DP 题目描述 给定一个 n 个点 m 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。 输入格式 第一行两个正整数 n,m 第二行 n 个整数,依次代表点权 第三至 m ...
分类:
其他好文 时间:
2020-02-10 13:23:36
阅读次数:
59