萌新求助,为啥我的bfs没有输出QAQ
查看原帖
萌新求助,为啥我的bfs没有输出QAQ
298549
SIXIANG32楼主2020/5/17 21:17

RT,感觉我的bfs和题解挺像的啊QAQ,我真菜QAQ

#include<bits/stdc++.h>
using namespace std;
vector<int>mp[101000];
bool vis[100100];
int n,m;
void link(int x,int y)
{
	mp[x].push_back(y);
}
void dfs(int u)
{
	if(!vis[u])
	{
		vis[u]=true;
		cout<<u<<' ';
		if(mp[u].size()==0)return; 
		for(int p=0;p<=mp[u].size()-1;p++)
			if(!vis[mp[u][p]])
				dfs(mp[u][p]); 
	}
}
void bfs(int u)
{
	queue<int>que;
	que.push(u);
	vis[u]=1;
	while(!que.empty())
	{
		for(int p=0;p<=mp[que.front()].size()-1;p++)
			if(!vis[u])
				que.push(mp[que.front()][p]),cout<<mp[que.front()][p]<<' ',vis[mp[que.front()][p]]=true;
		que.pop();
	}
}
bool cmp(int x,int y)
{
	return x<y;
}
int main() 
{
	cin>>n>>m;
	for(int p=1,x,y;p<=m;p++)
	{
		cin>>x>>y;
		link(x,y);
	}
	for(int p=1;p<=n+1;p++)
	sort(mp[p].begin(),mp[p].end(),cmp);
	memset(vis,false,sizeof(vis));
	dfs(1);
	memset(vis,false,sizeof(vis));
	bfs(1);
}
2020/5/17 21:17
加载中...