闰土,一道图论 BFS 结果就 CE 了。。
#include<bits/stdc++.h>
using namespace std;
bool mp[1000005][1000005],vis[1000005];
int n,m;int bfs(int cur)
{
memset(vis,false,sizeof(vis));
queue<int>q;q.push(cur);int mit(-2147483647);
vis[cur]=true;while(q.size())
{
int point=q.front();q.pop();
for(int i=1;i<=n;++i)
if(mp[point][i] and !vis[i])
{
vis[i]=true;q.push(i);mit=max(mit,i);
}
}
return mit;
}
int main()
{
cin>>n>>m;while(m--)
{
int a,b;cin>>a>>b;mp[a][b]=true;
}
for(int i=1;i<=n;++i)
cout<<bfs(i)<<' ';
return 0;
}