社区讨论

0分求调

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lrso6381
此快照首次捕获于
2024/01/25 11:43
2 年前
此快照最后确认于
2024/01/25 14:25
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<bool>vis;
vector<vector<int> >adj;
void bfs(int u){
	queue<int>q;
	q.push(u);
	vis[u]=false;
	while(!q.empty()){
		int now=q.front();
		printf("%d ",now);
		q.pop();
		for(int nxt:adj[now]){
			if(!vis[nxt])continue;
			vis[nxt]=false;
			q.push(nxt);
		}
	}
}
void dfs(int u){
	if(vis[u])return;
	vis[u]=true;
	printf("%d ",u);
	for(int v:adj[u])dfs(v);
}
int main(){
	scanf("%d%d",&n,&m);
	vis.resize(n+1,false);
	adj.resize(n+1);
	for(int i=1,u,v;i<=m;i++){
		scanf("%d%d",&u,&v);
		adj[u].push_back(v);
	}
	for(vector<int> u:adj)
		sort(u.begin(),u.end());
	dfs(1);printf("\n");bfs(1);
	return 0;
}

回复

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

正在加载回复...