25ptsMLE求助
查看原帖
25ptsMLE求助
1219897
Crow_ming楼主2024/8/27 17:51

找bug找很久实在找不出

望大佬看看哪错(悬关)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> p[100001];
bool num[100001];
void dfs(int x) {
	if(num[x]==1) return ;
	cout<<x<<" ";
	num[x]=1;
	if(p[x].size()==0) return ;
	for(int j=0; j<p[x].size(); j++) {
		dfs(p[x][j]);
	}
}
void bfs(int x) {
	if(num[x]==0) cout<<x<<" ";
	num[x]=1;
	if(p[x].size()==0) return ;
	queue<int> tmp;
	for(int i=0; i<p[x].size(); i++) {
		if(!num[p[x][i]]) {
			cout<<p[x][i]<<" ";
			num[p[x][i]]=1;
		}
		tmp.push(p[x][i]);
	}
	while(!tmp.empty()) {
		bfs(tmp.front());
		tmp.pop();
	}
}
int n,m;
int main() {
	cin>>n>>m;
	for(int i=1; i<=m; i++) {
		int x,y;
		cin>>x>>y;
		p[x].insert(upper_bound(p[x].begin(),p[x].end(),y),y);
	}
	dfs(1);
	cout<<endl;
	memset(num, false, sizeof(num));
	bfs(1);
	return 0;
}
2024/8/27 17:51
加载中...