社区讨论

玄关求教,样例过但全WA

P5318【深基18.例3】查找文献参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhj94ojv
此快照首次捕获于
2025/11/03 22:45
4 个月前
此快照最后确认于
2025/11/03 22:45
4 个月前
查看原帖
问需要如何排序,对什么进行排序。
CPP
#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
const int N=1e5+3;
bool vis[N];
vector<int> g[N];
int n,m;
void dfs(int x,int fa){
	cout<<x<<" ";
	for(auto ne:g[x]){
		if(ne==fa||vis[ne]==1) continue;
		vis[ne]=1;

		dfs(ne,x);
	}
}
void bfs(int x){
	queue<int> q;
	q.push(x);
	vis[x]=1;
	
	while(!q.empty()){
	    cout<<q.front()<<" ";
		int fr=q.front();
		for(auto ne:g[fr]){
			if(vis[ne]==1) continue;
			q.push(ne);
		
			vis[ne]=1;
		}
		q.pop();
	}
}
int main(){
	cin>>n>>m;
	for(int i=1,u,v;i<=m;i++){
		cin>>u>>v;
		g[u].push_back(v);
	}
	vis[1]=1;
	dfs(1,0);
	cout<<'\n';
	memset(vis,0,sizeof(vis));
	vis[1]=1;
	bfs(1);
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...