2605答案

Papyrus在审判你  •  11个月前


#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int visited[110];
void deep(int v){
    cout<<v<<" ";
    visited[v]=1;
    for(int i=1;i<110;i++){
        if(a[v][i]==1&&!visited[i]){
            deep(i);
        }
    }
}
void large(int jb){
    queue<int>q;
    q.push(jb);
    while(!q.empty()){
        int t=q.front();
        visited[t]=1;
        cout<<t<<" "; 
        for(int i=1;i<110;i++){
            if(a[t][i]==1&&!visited[i]){
                q.push(i);
                visited[i]=1;
            }
        }
        q.pop();
    }
}
int main(){
    int n,m;
    cin>>n>>m;
    memset(a,0,sizeof(a));
    for(int i=0;i<m;i++){
        int f,t;
        cin>>f>>t;
        a[f][t]=1;
    }
    memset(visited,0,sizeof(visited));
    deep(1);
    cout<<endl;
    memset(visited,0,sizeof(visited));
    large(1);
    return 0;
}

评论:

请先登录,才能进行评论