P3906 Geodetic集合
又来水题了
题意
给了你一个无向连通图,每两个点至多有一天边连接。让你求给定x-y路径中的所有点。
思路
SPFA
这里回忆一下SPFA,SPFA通过松弛操作来更新两个点之间的最短距离,并且只用更新过的值来更新。
对于这个题,他要找的是x-y之间的路径,那么我们首先跟新x能到达的每个点的最短距离,然后在更新b能够到达的所有点的最短路径,这个时候我们有了a和b的最短路,那么这个时候我们就需要遍历一下所有的点,这个点满足,b能走到的位置+a能走到的位置=a走到b,满足就输出。看代码:
#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f, N = 1e5 + 10;
int n, m, k;
int h[N], w[N], e[N], ne[N], idx;
int dis[N], t[N];
bool st[N];
void add(int a, int b) {
e[idx] = b; ne

这篇博客介绍了P3906 Geodetic集合问题,涉及无向连通图中特定路径上的点查找。通过使用SPFA(Shortest Path Faster Algorithm)算法,先更新x可达的所有点的最短距离,再更新b可达点的最短距离。最终遍历所有点,找到满足路径条件的点进行输出。解题过程中重点在于理解和应用SPFA算法。
最低0.47元/天 解锁文章
301

被折叠的 条评论
为什么被折叠?



