社区讨论

求助,全部TLE

P5318【深基18.例3】查找文献参与者 4已保存回复 13

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
13 条
当前快照
1 份
快照标识符
@lobxitqj
此快照首次捕获于
2023/10/30 04:34
2 年前
此快照最后确认于
2023/11/04 09:50
2 年前
查看原帖
CPP
#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只运行了一半,但样例是对的

回复

13 条回复,欢迎继续交流。

正在加载回复...