用了很神奇的做法
用数组装了链和入度,每次找入度为0的点去计算
只有10分(红温
也试了很多自己出的数据 But 就是不对
下了测试点1的数据然鹅没有任何帮助
#include<bits/stdc++.h>
using namespace std;
int e[5005],r[5005][5005];
int a,b,n,m,q=0;
bool js=1;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a>>b;
r[a][b]=1;
r[b][0]++;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(r[j][0]==0)q=j;
}
for(int j=1;j<=n;j++){
if(r[q][j]){
e[j]+=max(1,e[q]);
r[j][0]--;
r[q][j]=0;
}
}
r[q][0]=n+10;
}
sort(e+1,e+1+n);
cout<<e[n];
return 0;}