全部评论 1

  • #include<bits/stdc++.h>
    using namespace std;
    //100
    int n,m,s;
    vector<int> g[110];
    int dist[110];
    int main(){
    cin>>n>>m;
    for(int i=0;i<m;i++){
    int x ,y;
    cin>>x>>y;
    g[x].push_back(y);
    g[y].push_back(x);
    }
    cin>>s;

    for(int i=1;i<=n;i++)dist[i] = 1e9; //初始化每个点到达起点距离为无穷大
    dist[s] = 0;//初始化起点距离
    queue<int> q;
    q.push(s);
    while(q.size()){
        int top = q.front();
        q.pop();
        for(int next:g[top]){
            if(dist[next]>dist[top]+1){
                dist[next] = dist[top]+1;
                q.push(next);
            }
        }
    }
    for(int i=1;i<=n;i++)cout<<dist[i]<<" ";
    return 0;
    

    }

    18小时前 来自 河北

    0

热门讨论