最短路
文章平均质量分 58
.SAI.
十年感悟 两年参悟
展开
-
无向图的最小环问题 (Floyd算法)
问题描述: 题目传送门 解题思路:原创 2022-01-13 20:04:27 · 1833 阅读 · 2 评论 -
洛谷P1037 产生数 (Floyd联通性问题)
问题描述: 题目传送门 解题思路: 可以利用乘法原理,判断原数上每一位数字有几种变化情况,然后相乘即为答案。 很显然,题目所给的变化情况即为一条边,而每一个数字的变化即为一个连通块,因此单个数字变化的个数即为这个连通块的大小。 判断联通快的算法很多,可以通过 dfsdfsdfs 和 bfsbfsbfs 等搜索进行遍历每个连通块,这里我们通过 FloydFloydFloyd 求出 iii 和 jjj 是否相连来解决连通块问题。 既 iii 所能到达的所有 jjj 都处在同一连通块,至于连通块的大小即为 ii原创 2022-01-13 15:33:33 · 273 阅读 · 0 评论 -
51nod 2650 最短缩减路径 (拆点最短路)
问题描述: 题目传送门 解题思路: 我们一般会想到先在图上跑一遍最短路,然后在最短路径中找一条最长的边进行缩短。但是很容易可以发现,这种做法是很假的,因为缩短路径可能会使某条非最短路变成最短路。 此时我们需要考虑一种清奇的思路。 构建两张一模一样的图,其中上图 GGG 表示还未使用路径缩短的图,下图 G′G'G′ 表示已经使用了路径缩短的图,而上下图连接的单向变表示被路径缩短的边。 如图: 这样一来,由于在路径中必然需要使用一次路径缩短,因此我们必然要从上图的起点到达下图的终点,因此我们可以在这种双层图原创 2022-01-13 11:15:39 · 406 阅读 · 0 评论 -
最短路模板大全
例题: 题目传送门 解题思路: 各路板板摆上: SPAF 最短路(链式前向星) int head[200010]={0},tot=0; struct Gar { int x,y,w,next; } e[500010]; void add(int x,int y,int w) { tot++; e[tot].x=x; e[tot].y=y; e[tot].w=w; e[tot].next=head[x]; head[x]=tot; } queue<int> q; bool us原创 2022-01-12 16:27:28 · 267 阅读 · 0 评论 -
SSL 1613 最短路问题
题目描述: 有 NNN 个点(N<100)(N<100)(N<100),给出每个点的直角系坐标,某些点之间有双向变相连,边权为坐标上两点的直线距离,现在给出你原点和目标点,让你求两点间的最短路(保留两位小数)。 样例输入: 5 0 0 2 0 2 2 0 2 3 1 5 1 2 1 3 1 4 2 5 3 5 1 5 样例输出: 3.41 解题思路: 典型的最短路问题,由于NNN 太小了,我们可以用任何算法随便搞。这里来介绍FloyedFloyedFloyed 算法。 Floyed原创 2021-12-25 15:38:27 · 877 阅读 · 0 评论