合集-最短路径
摘要:一、Bellman-Ford算法 Q:有一张有 \(n\) 个点、\(m\) 条边的有向图,可能存在重边、负边和自环,但不存在负环,求起点 \(s\) 到每个点的最短路径。 1.1 算法简析 记图为 \(G\);\(G[u]\) 表示以 \(u\) 为起点的所有边的集合;\(e(u, v)\) 表示
阅读全文
摘要:题目描述 P4568 [JLOI2011] 飞行路线 题目分析 显然,这是一道最短路径的题目,我们可以选择 \(Dijkstra\) 算法求解。但是,题目中有 他们可以免费在最多 k 种航线上搭乘飞机。也就是说,我们可以令最多 \(k\) 条边的权值为零。这时,我们就要采用分层图。 分层图 分层图并
阅读全文
摘要:一、问题描述 P2865 [USACO06NOV] Roadblocks G 二、问题简析 如果求最短路径,我们很自然会想到 \(Dijkstra\)。但是,这道题要求的是次短路径。 记到 \(u\) 的最短路径为 \(d_1[u]\),到 \(u\) 的次短路径为 \(d_2[u]\)。则 \(d
阅读全文
摘要:一、题目描述 P5960 【模板】差分约束 二、题目简析 差分约束问题的典型特征是一组不等式。只要画出约束图,这类问题都可以准换为最短路径问题。注意:约束图是有向图。 2.1 约束图的顶点 约束图的顶点(\(V\)) = 一个未知数对应一个顶点(\(v_1, v_2, ...,v_n\)) + 一个
阅读全文
摘要:一、问题描述 B3611 【模板】传递闭包 二、问题简析 首先,要弄清楚传递闭包的定义,由题意: 一张图的邻接矩阵定义为一个 \(n\times n\) 的矩阵 \(A=(a_{ij})_{n\times n}\),其中 \[ a_{ij}=\left\{ \begin{aligned} 1,i\
阅读全文
摘要:一、单源最短路径 typedef long long ll; const int MAX = 2e3 + 5; const ll INF = numeric_limits<ll>::max(); typedef struct { int to, worth; } edge; int n, m; ve
阅读全文
摘要:一、算法简析 \(Johnson\) 算法可以求解带负权边的中小图的全源最短路径。 算法步骤: 建立虚拟源点 \(0\),从 \(0\) 至其它各点添加权值为 \(0\) 有向边。 用 \(spfa\) 算法求出从 \(0\) 至其它各点的最短路径 h[i]。 将原图中边的权值改为:\(w(u,v)
阅读全文