求助,全部TLE
查看原帖
求助,全部TLE
137627
wweiyuzhao楼主2021/8/21 09:49
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
struct stu{
	int a,b;
};
vector<int>x[100001];
vector<stu>f;
bool flag[100005]={0},flag2[100005]={0};
bool cmp(stu ff,stu fff)
{
	if(ff.a==fff.a)
	{
		return ff.a<fff.a;
	}
	else
	{
		return ff.a<fff.a;
	}
}
void dfs(int s)
{
	flag[s]=1;
	cout<<s<<" ";
	for(int i=0;i<x[s].size();i++)
	{
		int len=f[x[s][i]].b;
		if(!flag[len])
		{
			dfs(len);
		}
	}
}
void bfs(int s)
{
	queue<int>q;
	q.push(s);
	cout<<s<<" ";
	flag2[s]=1;
	while(!q.empty())
	{
		int ben=q.front();
		for(int i=0;i<x[ben].size();i++)
		{
			int len=f[x[ben][i]].b;
			if(!flag2[len])
			{
				q.push(len);
				cout<<len<<" ";
				flag2[len]=1;
			}
		}
	}
}
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		int aa,bb;
		cin>>aa>>bb;
		f.push_back((stu){aa,bb}); 
	}
	sort(f.begin(),f.end(),cmp);
	for(int i=0;i<m;i++)
	{
		x[f[i].a].push_back(i);
	}
	dfs(1);
	cout<<endl;
	bfs(1);
	return 0;
}

我用DEVC++运行了一遍,dfs运行完成,但bfs只运行了一半,但样例是对的

2021/8/21 09:49
加载中...