4 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n,e,a[20][20]; bool f[20]; queue<int>q; int main(){ cin>>n>>e; int x,y; for (int i=1;i<=e;i++){ cin>>x>>y; a[x][y]=1; a[y][x]=1; } q.push(1); f[1]=true; cout<<1<<" "; while(q.size()){ for (int i=1;i<=n;i++){ if (a[q.front()][i]&&!f[i]){ cout<<i<<" "; q.push(i); f[i]=true; } } q.pop(); } return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int n,m,u,v; vector<int> e[15]; bool vis[15]; /* 邻接表 查询是否存在某条边:O(m)。 遍历一个点的所有出边:O(m)。 遍历整张图:O(nm)。 空间复杂度:O(m)。 */ queue<int> q; void bfs(int u) { vis[u]=true; q.push(u); while(q.size()>0) { int now=q.front(); cout<<now<<" "; q.pop(); for(int i=0;i<e[now].size();i++) { int v=e[now][i]; if(!vis[v]) { q.push(v); vis[v]=true; } } } } int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(int i=1;i<=m;i++) { cin>>u>>v; e[u].push_back(v); e[v].push_back(u); } for(int i=1;i<=n;i++) { sort(e[i].begin(),e[i].end()); } bfs(1); return 0; }
-
-1
#include <bits/stdc++.h> using namespace std; bool a[20][20]; int n,e,x,y,h,t; bool f[20]; int q[20]; void bfs(int x){ h=t=1; q[h]=x; f[x]=true;//±ê¼ÇÒѾ·ÃÎʹýÁË cout<<x<<" "; while(h<=t){ //ÕÒÍ·Ö¸ÕëhÖ¸ÏòµÄµãµÄÁÚ½Óµã for(int i=1;i<=n;i++){ //1.´Óq¡¾h¡¿³ö·¢µÄ //2.f¡¾i¡¿==false if(a[q[h]][i]==1&&!f[i]){ t++; q[t]=i; f[i]=true; cout<<i<<" "; } } h++; } } int main() { cin>>n>>e; for(int i=1;i<=e;i++){ cin>>x>>y; a[x][y]=1; a[y][x]=1; } bfs(1); return 0; }
- 1
信息
- ID
- 1049
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 27
- 已通过
- 22
- 上传者