1 条题解

  • 1
    @ 2024-3-19 13:09:31

    世界上最好的题解😄

    #include<bits/stdc++.h>
    using namespace std;
    int n,m; 
    vector<int> g[100005]; 
    void input(){
    	cin>>n>>m;
    	int x,y;
    	for(int i=0;i<m;++i){
    		cin>>x>>y;
    		g[x].push_back(y);
    	}
    	for(int i=1;i<=n;++i){
    		sort(g[i].begin(),g[i].end());
    	}	
    }
    bool used[100005];
    void dfs(int k){
    	cout<<k<<" ";
    	used[k]=true;
    	for(int i=0;i<g[k].size();++i){
    		if(!used[g[k][i]])dfs(g[k][i]);
    	}
    }
    queue<int> q;
    void bfs(){
    	memset(used,0,sizeof(used));
    	q.push(1);
    	used[1]=true;
    	cout<<1<<" ";
    	while(!q.empty()){
    		int k=q.front();
    		q.pop();
    		for(int i=0;i<g[k].size();++i){
    			if(!used[g[k][i]]){
    				q.push(g[k][i]);
    				used[g[k][i]]=true;
    				cout<<g[k][i]<<" ";				
    			}
    		}
    	}
    }
    int main(){
    	input();
    	dfs(1);cout<<endl;
    	bfs();
    	return 0;
    }
    

    看完别忘了点赞哟👍

    • 1

    信息

    ID
    4244
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    33
    已通过
    9
    上传者