第一次写BFS的题,从开始一脸懵逼到慢慢分析,期间没有看书没查博客,自己安静的做了四十分钟终于做出来了,满满的成就感,我很水,但是我很努力,Mr杰要努力!
#include<stdio.h>
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int map[1000][100];
queue<int> q;
int k,m,t,u,v,to[1000],vis[1000];
void BFS()
{q.push(t);while(!q.empty()){int x=q.front();if(!vis[x])cout<<x<<" ";q.pop();vis[x]=1;for(int j=0; j<m; ++j){if(map[x][j]&&!vis[j])q.push(j);}}
}
int main()
{int T;cin>>T;while(T--){while(!q.empty())q.pop();memset(map,0,sizeof(map));memset(vis,0,sizeof(vis));cin>>k>>m>>t;for(int i=0; i<m; ++i){cin>>u>>v;map[v][u]=map[u][v]=1;}BFS();}return 0;
}