rt
代码:
#include <bits/stdc++.h>
using namespace std;
int n, m, ans, vis[100005];
vector<int> mp[100005];
struct node
{
int id, step;
};
queue<node> que;
void dfs(int p)
{
cout << p << ' ';
for(int i = 0; i < mp[p].size(); i++)
{
if(!vis[mp[p][i]])
{
vis[mp[p][i]] = 1;
dfs(mp[p][i]);
}
}
}
void bfs(int s)
{
vis[s] = 1;
que.push({s, 0});
while(que.size())
{
node hd = que.front();
que.pop();
cout << hd.id << ' ';
for(int i = 0; i < mp[hd.id].size(); i++)
{
if(!vis[mp[hd.id][i]])
{
vis[mp[hd.id][i]] = 1;
que.push({mp[hd.id][i], hd.step + 1});
}
}
}
}
int main()
{
cin >> n >> m;
while(m--)
{
int x, y;
scanf("%d %d", &x, &y);
mp[x].push_back(y);
}
for(int i = 1; i <= n; i++)
{
sort(mp[i].begin(), mp[i].end());
}
dfs(1);
cout << endl;
memset(vis, 0, sizeof vis);
bfs(1);
return 0;
}
WA 20 求助