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

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

#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:10
加载中...