#include<bits/stdc++.h>
using namespace std;
int mx=0;
int main(){
int n,m;
cin>>n>>m;
vector<vector<int> > g(n),din(n);
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
u--,v--;
g[u].push_back(v);
din[v]++;
}
queue<int> q;
vector<int> dp(n);
for(int i=0;i<n;i++)
if(!din[i])q.push(i);
while(q.size()){
int x=q.front();
q.pop();
for(auto v:g[x]){
din[v]--;
dp[v]=max(dp[v],dp[x])+1;
if(!din[v])q.push(v);
}
}
cout<<*max_element(dp.begin(),dp.end())<<endl;
return 0;
}
我的这个也是,看着挺正确,都十几次CE了,大佬们指点一下,哪里错了???