求所有点到查找的点的最优路径
#include<bits/stdc++.h>
using namespace std;
const int maxn = 105;
// 任务:求从1点开始,利用bfs遍历完这张图
vector<int> e[maxn];
int bk[maxn]; // 是否已经进入队列
queue<int> q; // 待扩展队列
int main()
{
int n , m; cin >> n >> m;
for (int i = 1 ; i <= m ; i++){
int x , y; cin >> x >> y;
e[x].push_back(y);
e[y].push_back(x);
}
q.push(1);
bk[1] = 1;
// 正式进入bfs
while (q.size()){
int u = q.front();
cout << "现在我在" << u << "点,把他提出队列" << endl;
q.pop();
for (auto v : e[u]){
// 同时也保证了我们的最短路性质
if (bk[v]) // v 要么是跟我同级的,要么在我之前.
{
cout << "对于" << u << "来说" << v << "是没必要访问的" << endl;
continue;// 不管怎么样,都没必要访问了
}
cout << "对于" << u << "来说" << v << "是有必要访问的,放入队列!" << endl;
q.push(v);
bk[v] = 1;
}
}
return 0;
}
/*
5 6
1 2
1 3
2 3
3 4
3 5
4 5
*/