样例点
#8没通过,TLE,哪位大佬帮忙看看?
我试了一下,memset()比for要快
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m;
bool vis[N];
vector<int>a[N];
queue<int>q;
int bfs(int x){
int ans=0;
q.push(x);
vis[x]=1;
while(q.size()){
int d=q.front();
ans=max(d,ans);
q.pop();
for(int i=0;i<a[d].size();i++){
if(!vis[a[d][i]]){
q.push(a[d][i]);
vis[a[d][i]]=1;
}
}
}
return ans;
}
signed main(){
scanf("%lld %lld",&n,&m);
for(int i=1;i<=m;i++){
int x,y;
scanf("%lld %lld",&x,&y);
a[x].push_back(y);
}
for(int i=1;i<=n;i++){
while(q.size())q.pop();
memset(vis,0,sizeof(vis));
printf("%lld ",bfs(i));
}
return 0;
}