求助
  • 板块题目总版
  • 楼主wengkaidi
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/11/28 15:14
  • 上次更新2023/11/3 23:21:29
查看原帖
求助
482564
wengkaidi楼主2021/11/28 15:14

求助 谁能看看我这题哪里错了?

#include<bits/stdc++.h>
using namespace std;
long long n,m,fir[10005],nxt[10005],son[10005],fa[10005],tot;
bool vis[10005];
void add(int x,int y){
    tot++;
    son[tot]=y;
    nxt[tot]=fir[x];
    fir[x]=tot;
}
void dfs(int x){
    vis[x]=true;
    for(int j=fir[x];j;j=nxt[x])if(!vis[son[j]]){
        fa[son[j]]=x;
        dfs(son[j]);
    }
}
int main(){
    cin>>n>>m;//n:点数 m:边数 
    for(int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        add(x,y);
        add(y,x);
    }
    dfs(1);
    for(int i=1;i<=n;i++){
        cout<<i<<':'<<fa[i]<<' ';
        for(int j=fir[i];j;j=nxt[j])if(son[j]!=fa[i])cout<<son[j]<<' ';
        cout<<endl;
    }
    return 0;
}
                   
2021/11/28 15:14
加载中...