20pts
查看原帖
20pts
1126733
lxc129楼主2024/9/19 21:04
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,i,j,m;
bool vis[100005],vis2[100005];
vector<ll>v[100001];
void bfs(){
	queue<ll>q;
	q.push(1);
	vis[1]=1;
	while (!q.empty()){
		int cur=q.front();
		q.pop();
		cout<<cur<<' ';
		for (int i=0;i<v[cur].size();i++)
			if (!vis[v[cur][i]]){
				vis[v[cur][i]]=1;
				q.push(v[cur][i]);
			}
	}
}
void dfs(ll u){
    cout<<u<<' ';
	for (int i=0;i<v[u].size();i++)
		if (!vis2[v[u][i]]){
			vis2[v[u][i]]=1;
			dfs(v[u][i]);
		}
}
int main(){
    //freopen("find_literature.in","r",stdin);
    //freopen("find_literature.out","w",stdout);
	cin>>n>>m;
    while (m--){
        cin>>i>>j;
        v[i].push_back(j);
    }
    for (int i=1;i<=n;i++) sort(v[i].begin(),v[i].end());
	dfs(1);
	cout<<'\n';
	bfs();
}

2024/9/19 21:04
加载中...