求助
查看原帖
求助
1360429
sunzhanglin楼主2024/10/16 18:22
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N][N];
int n,m;
int q[N];
int h,t;
bool f[N];

void dfs(int x){
	f[x]=true;
	cout<<x<<" ";
	for(int i=1;i<=n;i++){
		if(a[x][i]==1&&f[i]==false) dfs(i);
	}
}

int main(){
	
	cin>>n>>m;
	int x,y;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		a[x][y]=1;
	}
	dfs(1);
	cout<<endl;
	memset(f,0,sizeof(f));
	h=1;
	t=1;
	q[1]=1;
	f[1]=true;
	cout<<1<<" ";
	while(h<=t){
	    for(int i=1;i<=n;i++){
	    	if(a[q[h]][i]==1&&!f[i]){
	    		cout<<i<<" ";
				t++;
	    		q[t]=i;
	    		f[i]=true;
			}
		}
		h++;
	}
	return 0;
}
2024/10/16 18:22
加载中...