社区讨论

哥 救救我 20分 其他错了

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

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mhjkupa7
此快照首次捕获于
2025/11/04 04:13
4 个月前
此快照最后确认于
2025/11/04 04:13
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

int n,m,x,y,f;
vector<int>a[1000005];
queue<int>q;
bool b[1000005];

void dfs(int s)
{
	if(!a[s].empty())
	{
		sort(a[s].begin(),a[s].end());
		for(int i=0;i<a[s].size();i++)
		{
			if(!b[a[s][i]])
			{
				b[a[s][i]]=1;
				cout<<a[s][i]<<" ";
				dfs(a[s][i]);
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y;
		a[x].push_back(y);
	}
	cout<<1<<" ";
	for(int i=0;i<a[1].size();i++)
	{
		sort(a[1].begin(),a[1].end());
		if(!b[a[1][i]])
		{
			b[a[1][i]]=1;
			cout<<a[1][i]<<" ";
			dfs(a[1][i]);
		}
	}
	cout<<endl;
	memset(b,0,sizeof(b));
	q.push(1);
	while(!q.empty())
	{
		f=q.front();
		q.pop();
		cout<<f<<" ";
		if(!a[f].empty())
		{
			for(int i=0;i<a[f].size();i++)
			{
				if(!b[a[f][i]])
				{
					b[a[f][i]]=1;
					q.push(a[f][i]);
				}
			}
		}
	}
	
	return 0;
}

回复

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

正在加载回复...