样例过了,但是只有二十分
查看原帖
样例过了,但是只有二十分
659308
aa9527楼主2022/7/19 15:08
#include<iostream>
#include<vector> 
#include<algorithm>
using namespace std;

#define Max 100001
vector<int>arc[Max];
bool vex[Max];	
int n=0;		//顶点数 
int m=0;		//边数 
void visit(int v)
{
	cout<<v<<" ";
}
void BFS(int v)			//广度 
{
	visit(v);
	vex[v]=true;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<arc[i].size();j++)
		{
			if(!vex[arc[i][j]])
			{
				visit(arc[i][j]);
				vex[arc[i][j]]=true;
			}
		}
	}
	return;
}
void DFS(int v)			//深度 
{
	visit(v);
	vex[v]=true;
	for(int i=0;i<arc[v].size();i++)
	{
		if(!vex[arc[v][i]])
			DFS(arc[v][i]);
	}
	return;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int x=0;
		int y=0;
		cin>>x>>y;
		arc[x].push_back(y);	
	}
	for(int i=1;i<=n;i++)
		sort(arc[i].begin(),arc[i].end()); 
	DFS(1);
	cout<<endl;
	for(int i=1;i<=n;i++)
		vex[i]=false;
	BFS(1);
}
2022/7/19 15:08
加载中...