0分求调
查看原帖
0分求调
1304192
PANDA164楼主2024/4/8 22:34
#include <bits/stdc++.h>
using namespace std;
vector<int> e[100005];
int vis[100005];
int n,m;
int cmp(int a,int b){return a<b;}
void dfs(int p)
{
    vis[p]=1;
    printf("%d ",p);
    for (int i = 0; i < e[p].size(); i++)
    {
        if(!vis[e[p][i]])dfs(e[p][i]);
    }
}
void bfs(int p)
{
    queue<int> q;
    q.push(p);
    while (q.size())
    {
        int x=q.front();
        q.pop();
        if(!vis[x])
        {
            vis[x]=1;
            printf("%d ",x);
            for(int t:e[x])
            {
                q.push(t);
            }
        }
    }
    
    
    
}
int main()
{
    scanf("%d %d",&n,&m);
    for (int i = 0; i < m; i++)
    {
        int u,v;
        scanf("%d %d",&u,&v);
        e[u].push_back(v);
    }
    for (int i = 0; i < e->size(); i++)
    {
        sort(e[i].begin(),e[i].end(),cmp);
    }
    
    dfs(1);
    printf("\n");
    memset(vis,0,sizeof(vis));
    bfs(1);
}
2024/4/8 22:34
加载中...