help!
查看原帖
help!
1232274
liangwenle1011楼主2025/1/3 09:37

各位大佬,I'm sorry,上次第一次发帖忘了放代码,So, help me!:

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
int n,m,u,v;
vector<int>g[100010];
int vis[100010];
queue<int>q;
int s[100010];
void bfs(int x){
	vis[x]=1;
	q.push(x);
	while(!q.empty()){
		int t=q.front();
		q.pop();
		cout<<t<<' ';
		for(int i=0;i<g[t].size();i++){
			int tt=g[t][i];
			if(!vis[tt]){
				vis[tt]=1;
				q.push(tt);
			}
		}
	}
}
void dfs(int x,int c){
	if(c==n){
		return ;
	}
	vis[x]=1;
	cout<<x<<' ';
	for(int i=0;i<g[x].size();i++){
		int text=g[x][i];
		if(!vis[text]){
			dfs(text,c+1);
		}
	}
} 
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		g[u].push_back(v);
	}
	dfs(1,0);
	cout<<endl;
	memset(vis,0,sizeof(vis));
	bfs(1);
	return 0;
} 
2025/1/3 09:37
加载中...