80pts,第三个点WA,dalao求助!!!!
查看原帖
80pts,第三个点WA,dalao求助!!!!
680110
Hey_China楼主2024/7/10 09:25
#include<bits/stdc++.h>
//#pragma GCC optimize(3)
using namespace std;
int n,m;
bool vis[1000009];
vector <int> a[1000009]; 
void dfs(int now){
	cout<<now<<" ";
	vis[now] = 1;
	for(int i = 0;i<a[now].size();i++){
		if(vis[a[now][i]] == 0){
			dfs(a[now][i]);
		}
	}
}
bool vised[100009];
void bfs(int start){
	queue<int>q;
	q.push(start);
	vised[start] = 1;
	while(!q.empty()){
		int last = q.front();
		cout<<last<<" ";
		q.pop();
		for(int i = 0;i<a[last].size();i++){
			if(vised[a[last][i]] == 0){
				q.push(a[last][i]);
				vised[a[last][i]] = 1;
			}
		}
	}
}
int main(){
//    	ios::sync_with_stdio(false);
//    	ios_base::sync_with_stdio(false);
//    	cin.tie(NULL);
//    	cout.tie(NULL);
//    	#pragma omp parallel for
	cin>>n>>m;
	int u,v;
	for(int i = 1;i<=m;i++){
		cin>>u>>v;
		a[u].push_back(v);
	}
	for(int i = 1;i<=n;i++){
		sort(a[i].begin(),a[i].end());
	}
	for(int i = 1;i<=n;i++){
		if(!vis[i]){
			dfs(i);
		}
	}
	cout<<endl;
	for(int i = 1;i<=n;i++){
		if(!vised[i]){
			bfs(i);
		}
	}
	return 0;
}
2024/7/10 09:25
加载中...