二十分求助!!!
查看原帖
二十分求助!!!
1047309
return_second楼主2024/4/5 19:52

rt

codecode:

#include <queue>
#include <cstdio>
#include <cstring> 
#include <algorithm>
using namespace std;
int n,m;
bool vis[100005];
vector<int>a[100005];
void dfs(int k)
{
	printf("%d ",k);
	for(int i=0;i<a[k].size();i++)
		if(!vis[a[k][i]])
		{
			vis[a[k][i]]=true;
			dfs(a[k][i]);
		}	
}
void bfs()
{
	queue<int>q;
	memset(vis,false,sizeof(vis));
	vis[1]=true;
	q.push(1);
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		printf("%d ",x);
		for(int i=0;i<a[x].size();i++)
			if(!vis[a[x][i]])
			{
				vis[a[x][i]]=true;
				q.push(a[x][i]);
			}
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		int u,v;
		scanf("%d%d",&u,&v);
		a[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
		sort(a[i].begin(),a[i].end());
	dfs(1);
	puts("");
	bfs();
	return 0;
}
2024/4/5 19:52
加载中...