题目:
啊,我太菜了,来水一道题。
代码:
#include<bits/stdc++.h>
using namespace std;
int m,n;
vector<vector<int> > vv;
int A[100005];
void dfs(int x)
{
if(A[x]==1) return;
cout<<x<<' ';
A[x]=1;
for(int i=0;i<vv[x].size();i++)
{
dfs(vv[x][i]);
}
}
void bfs()
{
queue<int> q;
memset(A,0,sizeof(A));
q.push(1);
A[1]=1;
while(!q.empty())
{
int c=q.front();
q.pop();
cout<<c<<' ';
for(int i=0;i<vv[c].size();i++)
{
if(A[vv[c][i]]==1) continue;
q.push(vv[c][i]);
A[vv[c][i]]=1;
}
}
}
int main()
{
memset(A,0,sizeof(A));
cin>>m>>n;
vector<int> v;
for(int i=0;i<=n;i++)
{
vv.push_back(v);
}
for(int i=0;i<n;i++)
{
int a,b;
cin>>a>>b;
vv[a].push_back(b);
}
for(int i=0;i<=n;i++)
{
sort(vv[i].begin(),vv[i].end());
}
dfs(1);
cout<<endl;
bfs();
}