#求助大佬 MLE*2 TLE*1 40pnts#
  • 板块P1137 旅行计划
  • 楼主EllinY
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/11/19 20:16
  • 上次更新2023/10/27 02:19:12
查看原帖
#求助大佬 MLE*2 TLE*1 40pnts#
514936
EllinY楼主2022/11/19 20:16

初级OIer 未经磨炼 欢迎大佬指教

#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> go[100001];
int ans[1000001];
int in[1000001]; 
queue<int> q;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		go[a].push_back(b);//vector建图
		in[b]++;//入度累加
	}
	for(int i=1;i<=n;i++){
		if(in[i]==0){
			q.push(i);
			ans[i]=1;
		}//从入度为零的点开始广搜
	}
	while(!q.empty()){
		int f=q.front();
		q.pop();
		int l=go[f].size();
		for(int i=0;i<l;i++){
			ans[go[f][i]]=max(ans[go[f][i]],ans[f]+1);//边搜边算答案
			q.push(go[f][i]);
		}
	}
	for(int i=1;i<=n;i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}

感谢大佬 Thanks♪(・ω・)ノ

2022/11/19 20:16
加载中...