样例过!全WA!求大佬
查看原帖
样例过!全WA!求大佬
603223
BaiChuan_Nayuta楼主2021/11/17 16:39

不知道为什么不对,用邻接表和队列写的dfsbfs,求大佬帮忙啊1

#include<bits/stdc++.h>
using namespace std;
int n,m,u,v,ans1[100010],ans2[100010],tot=0;
bool vis[100010];
vector<int> G[100010];
queue<int>q;
inline void bfs(int x){
	q.push(x);
	vis[x]=1;
	while(!q.empty()){
		int y=q.front();
		q.pop();
		ans2[++tot]=y;
		for(int i=0;i<(int)G[y].size();i++){
		if(!vis[G[y][i]]){
			vis[G[y][i]]=1;
				q.push(G[y][i]);
			}
		}
	}
}
inline void dfs(int x){
	if(vis[x])return;
	vis[x]=1;
	ans1[++tot]=x;
	for(int i=0;i<(int)G[x].size();i++){
		dfs(G[x][i]);
	}
}
inline void input(){
for(cin>>n>>m;m;--m){
		int u=0,v=0;
		scanf("%d%d",&u,&v);
		G[u].push_back(v);
	}
}
inline void init(){
	memset(vis,0,sizeof(vis));
	tot=0;
}
inline void solve(){
	dfs(1);
	for(int i=1;i<=tot;i++)cout<<ans1[i]<<' ';
	cout<<endl;
	init();
	bfs(1);
	sort(ans2+1,ans2+tot+1);
	for(int i=1;i<=tot;i++)cout<<ans2[i]<<' ';
}
int main(void){
	input();
	solve();
	return 0;
}
2021/11/17 16:39
加载中...