蒟蒻初学图论求调
查看原帖
蒟蒻初学图论求调
1053122
shy_lihui楼主2024/12/5 01:54
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> e[100005];
int vis1[100006];
int vis2[100006];
void dfs(int u)
{
	vis1[u]=1;
	cout<<u<<' ';
	for(int i:e[u])
	{
		if(!vis1[i])
		{
			dfs(i);
		}
	}
}
queue<int> q;
void bfs(int u)
{
	q.push(u);
	while(!q.empty())
	{
		int v;
		v=q.front();
		q.pop();
		if(vis2[v])
		{
			continue;
		}
		cout<<v<<' ';
		vis2[v]=1;
		for(int i:e[v])
		{
			if(vis2[i]==0)
			{
				q.push(i);
			}
		}
	}
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		int u,v;
		cin>>u>>v;
		e[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
	{
		sort(e[i].begin(),e[i].end());
	}
	dfs(1);
	cout<<'\n';
	bfs(1);
	return 0;
}
2024/12/5 01:54
加载中...