MLE
查看原帖
MLE
390770
S0CRiA楼主2021/1/12 17:59
//P5318
#include <algorithm>
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
bool dfsvis[100005],bfsvis[100005];
vector<int> pic[100005];

void dfs(int n){
    printf("%d ",n);
    for(int i=0; i<pic[n].size(); ++i)
        if(!dfsvis[pic[n][i]]){
            dfs(pic[n][i]);
            dfsvis[pic[n][i]]=true;
        }
    return;
}
void bfs(int n){
    queue<int> q;
    q.push(n);
    while(!q.empty()){
        int t=q.front();
        printf("%d ",t);
        q.pop();
        for(int i=0; i<pic[t].size(); ++i){
            if(!bfsvis[pic[t][i]]){
                q.push(pic[t][i]);
                bfsvis[pic[t][i]]=true;
            }
        }
    }
    return;
}

int main(){
    int n,m,a,b;
    scanf("%d %d",&n,&m);
    for(int i=0; i<m; ++i){
        scanf("%d %d",&a,&b);
        pic[a].push_back(b);
    }
    for(int i=1; i<=n; ++i)
        sort(pic[i].begin(),pic[i].end());
    dfsvis[1]=true;
    bfsvis[1]=true;
    dfs(1);
    printf("\n");
    bfs(1);
    return 0;
}

求助

2021/1/12 17:59
加载中...