样例过,全WA
查看原帖
样例过,全WA
1404765
umirin楼主2025/6/13 12:58

朋友说我的dfs写得很怪

#include<bits/stdc++.h>
using namespace std;
long long n,m,u,v,d[100010],start;
vector<int> Q[100010];
queue<int> B;
bool vis[100010],at[100010];
void dfs(int b){
	cout<<b<<' ';
    if(Q[b].size()==0||vis[b]==1){
        vis[b]=1;
		return ;
    }
    vis[b]=1;
    for(int j=0;j<Q[b].size();j++){
        if(vis[Q[b][j]]==0) dfs(Q[b][j]);
    }
}
void bfs(){
	B.push(1);
	vis[1]=1;
	while(B.size()!=0){
		start=B.front();
		B.pop();
		cout<<start<<' ';
		for(int i=0;i<Q[start].size();i++){
			if(vis[Q[start][i]]==0){
				vis[Q[start][i]]=1;
				B.push(Q[start][i]);
			}
		}
	}
	return ;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>u>>v;
        Q[u].push_back(v);
    }
    for(int i=1;i<=n;i++){
        sort(Q[u].begin(),Q[u].end());
    }
    dfs(1);
    cout<<endl;
    memset(vis,0,sizeof(vis));
    bfs();
}
2025/6/13 12:58
加载中...