样例通过0分求助
查看原帖
样例通过0分求助
499231
Jacky2009楼主2021/8/14 17:27

这道题明显是邻接表+dfs+bfs 于是我肝了一个DFS出来

void dfs(int d){
	cout<<d<<" ";
	for(unsigned long i=0;i<li[d].size();i++){
		if(!u1[li[d][i]]){
			u1[li[d][i]]=1;
			dfs(li[d][i]);
		}
	}
}

然后是一个BFS

void bfs(int d){
	//cout<<u1[5]<<endl;
	queue<int>q;
	q.push(d);
	u1[d]=1;
	while(!q.empty()){
		int g=q.front();
		q.pop();
		cout<<g<<" ";
		for(int i=0;i<li[g].size();i++){
			if(!u1[li[g][i]]){
				u1[li[g][i]]=1;
				//cout<<li[d][i]<<" ";
				q.push(li[g][i]);
				//cout<<i<<" "<<li[d][i]<<endl;
			}
		}
		//cout<<endl;
	}
}

读入

int main(){
	int a,b,u,v;
	cin>>a>>b;
	for(int i=0;i<b;i++){
		cin>>u>>v;
		li[u].push_back(v);
	}
	u1[1]=true;
	dfs(1);
	cout<<endl;
	for(int i=0;i<=100005;i++)u1[i]=0;
	bfs(1);
	cout<<endl;
}

样例输出 1 2 5 6 3 7 8 4 1 2 3 4 5 6 7 8 我得意的交了上去 然后一片红...... 请求各位julao指出代码中有什么问题

2021/8/14 17:27
加载中...