0分求助。。。
查看原帖
0分求助。。。
271840
wubulubdubdub楼主2021/3/6 20:22
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	int re=0;
	queue<int> q;
	int res[5005];
	int ind[5005];
	vector<int> v[5005];
	cin>>n>>m;
	int u,w;
	for(int i=0;i<=n;i++){
		ind[i]=0;
		res[i]=1;
	}
	for(int i=1;i<=m;i++){
		cin>>u>>w;
		ind[u]++;
		v[w].push_back(u); 
	}
	for(int i=1;i<=n;i++){
		if(ind[i]==0){
			q.push(i);
		}
	}
	while(1){
		int r=q.front(); 
		q.pop();
		for(int i=0;i<v[r].size();i++){
			ind[v[r][i]]--;
			if(ind[v[r][i]]==0){
				q.push(v[r][i]);
			}
			res[v[r][i]]=max(res[v[r][i]],res[r]+1);
		}
		if(q.empty()) break;
	}
	for(int i=1;i<=n;i++){
		re=max(re,res[i]);
	}
	cout<<re;
	return 0;
}
2021/3/6 20:22
加载中...