教教我
dfs TLE 90分(第8个点)
请大佬赐教
#include<bits/stdc++.h>
using namespace std;
int n,m,maxx;
bool d[100005]={};
struct node{
vector<int> a;
}a[100005];
void dfs(int s){
d[s]=1;
maxx=max(maxx,s);
for(int i=0;i<a[s].a.size();++i)if(!d[a[s].a[i]])dfs(a[s].a[i]);
}
int main(){
cin>>n>>m;
for(int i=1,f,t;i<=m;++i){
scanf("%d%d",&f,&t);
a[f].a.push_back(t);
}
for(int i=1;i<=n;++i){
maxx=-1;
memset(d,0,n+5);
dfs(i);
printf("%d ",maxx);
}
return 0;
}