社区讨论

20分代码求调

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lv2yw2kw
此快照首次捕获于
2024/04/17 06:40
2 年前
此快照最后确认于
2024/04/17 15:34
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

vector<int> v[1000005];

bool f[1000005];
void dfs(int id){
	cout << id << " ";
	for(int i = 0; i < v[id].size(); i++){
		if(!f[v[id][i]]){
			f[v[id][i]] = true;
			dfs(v[id][i]);
		}
	}
}


deque<int> q;
void bfs(){
	q.push_back(1);
	while(!q.empty()){
		int t = q.front();
		cout << t << " "; 
		q.pop_front();
		for(int i = 0; i < v[t].size(); i++){
			if(!f[v[t][i]]){
				f[v[t][i]] = true;
				q.push_back(v[t][i]);
			}
		}	
	}
	
}

int main(){
	int n, m;
	cin >> n >> m;
	for(int i = 1; i <= m; i++){
		int x, y;
		scanf("%d%d", &x, &y);
		v[x].push_back(y);
	}
	for(int i = 1; i <= n; i++){
		sort(v[i].begin(), v[i].end());
	}
	
	dfs(1);
	cout << endl;
	f[1] = true;
	memset(f, false, sizeof(f));
	f[1] = true;
	bfs(); 
	return 0;
}

回复

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

正在加载回复...