60,大佬求助
查看原帖
60,大佬求助
682018
danielwuminghui楼主2024/10/22 20:29
#include <bits/stdc++.h>
using namespace std;
int n,m,u,v,x,f[1005];
bool vst[1005];
vector<int> vec[1005];
void bfs(int s,int val)
{
	if(f[s]>0)return;
	queue<int> q;
	q.push(s);
	vst[s]=1;
	f[s]=val;
	while(!q.empty())
	{
		x=q.front();
		q.pop();
		for(int i=0;i<vec[x].size();i++)
		{
			v=vec[x][i];
			if(vst[v]==0)
			{
				q.push(v);
				vst[v]=1;
				f[v]=val;
			}
		}
	}
	
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
    	cin>>u>>v;
    	vec[v].push_back(u);
	}
	for(int i=n;i>=1;i--)
	{
		bfs(i,i);
		
	}
	for(int i=1;i<=n;i++)
	{
		cout<<f[i]<<" ";
	}
	
    return 0;
}
2024/10/22 20:29
加载中...