求调
查看原帖
求调
1112643
luogu140658945楼主2024/12/20 11:47
#include<bits/stdc++.h>
using namespace std;
struct ab {
	long long d, m;
}a[1000001];
bool cmp(ab a, ab b) {
	if (a.d == b.d)return a.m < b.m;
	return a.d < b.d;
}
long long n, k;
bool book[100001];
vector<long long> v[100001];
void DFS(int d) {
	book[d] = 1;
	cout << d << " ";
	for (auto i : v[d]) {
		if (!book[i]) {
			DFS(i);
		}
	}
}
void BFS(int k) {
	queue<int> q;
	q.push(k);
	book[k] = 1;
	memset(book, 0, sizeof(book));
	while (!q.empty()) {
		int ls = q.front();
		q.pop();
		cout << ls << " ";
		for (auto i : v[ls]) {
			if (!book[i]) {
				book[i] = 1;
				q.push(i);
			}
		}
	}
}
int main() {
	cin >> n >> k;
	for (int i = 1; i <= k; i++) {
		cin >> a[i].d >> a[i].m;
	}
	sort(a + 1, a + k + 1, cmp);
	for (int i = 1; i <= k; i++) {
		v[a[i].d].push_back(a[i].m);
	}
	DFS(1);
	cout << "\n";
	BFS(1);
	return 0;
}
2024/12/20 11:47
加载中...