60pts求调
查看原帖
60pts求调
1167203
qwq_bad_on_coding楼主2024/8/29 09:24

以下是代码(WA on 3,5)

#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
const int maxn = 1e5 + 5;
int n, m;
bool vst[maxn];
vector <int> a[maxn];
queue <int> p;

void dfs(int pos) {
	vst[pos] = 1;
	cout << pos << ' ';
	for (int i = 0; i < a[pos].size(); i++) {
		if (!vst[a[pos][i]])
			dfs(a[pos][i]);
	}
}

void bfs() {
	int pos;
	p.push(1);
	while (!p.empty()) {
		pos = p.front();
		p.pop();
		cout << pos << ' ';
		vst[pos] = 1;
		for (int i = 0; i < a[pos].size(); i++) {

			if (!vst[a[pos][i]]) {
				p.push(a[pos][i]);
				vst[a[pos][i]] = 1;
			}
		}



	}
}

int main() {
	cin >> n >> m;
	int f, t;
	while (m--) {
		scanf("%d %d", &f, &t);
		a[f].emplace_back(t);
	}
	for (int i = 0; i < n; i++) {
		sort(a[i].begin(), a[i].end());
	}
	vst[1] = 1;
	dfs(1);
	cout << '\n';
	memset(vst, 0, sizeof(vst));
	vst[1] = 1;
	bfs();
	cout<<'\n';
}
2024/8/29 09:24
加载中...