20分 ,求助大佬
查看原帖
20分 ,求助大佬
931061
xulang楼主2023/11/8 22:24

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,q[100100];bool b[100100];
vector<int>a[100100];
void dfs(int k)
{
	cout<<k<<" ";
	b[k]=true;
	for(int i=1;i<a[k].size();i++)
	{
		if(!b[a[k][i]])
		dfs(a[k][i]);
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		a[i].push_back(0);
	}
	for(int i=1;i<=m;i++)
	{
		int u,v;cin>>u>>v;
		a[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
	{
		sort(a[i].begin(),a[i].end());
//		cout<<"i="<<i<<"  ";
//		for(int j=1;j<a[i].size();j++)
//		{
//			cout<<a[i][j]<<":";
//		}cout<<endl;
	}
	dfs(1);
	cout<<endl;
	memset(b,false,sizeof(b));
	for(int i=1;i<=n;i++)
	{
		sort(a[i].begin(),a[i].end());
//		cout<<"i="<<i<<"  ";
//		for(int j=1;j<a[i].size();j++)
//		{
//			cout<<a[i][j]<<":";
//		}cout<<endl;
	}
	int t=1,h=1;
	q[t++]=1;
	b[1]=true;
	cout<<1<<" ";
	while(h<t)
	{
		for(int i=1;i<a[h].size();i++)
		{
			int xx=a[h][i];
			if(b[xx])continue;
			b[xx]=true;
			cout<<xx<<" ";
			q[t++]=xx;
		}
		h++;
	}
}
2023/11/8 22:24
加载中...