P1137 旅行计划
//
// main.cpp
// P1137 旅行计划
//
// Created by CONIO on 2020/12/14.
//
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <queue>
#include <vector>
#include <stack>
using namespace std;
const int N=100005,M=200005;
inline int read()
{
char c = getchar(); int x = 0;
for (; !isdigit(c); c = getchar());
for (; isdigit(c); c = getchar())
x = x * 10 + c - '0';
return x;
}
int n,m,dp[N],indeg[N];
vector<int>G[N];
void dfs(int u)
{
for(int i=0;i<G[u].size();i++)
{
int v= G[u][i];
if(dp[u]+1>dp[v])
{
dp[v]=dp[u]+1;
dfs(v);
}
}
}
int main(int argc, const char * argv[]) {
// insert code here...
cin>>n>>m;
dp[1]=1;
for(int i=1;i<=m;i++)
{
int u=read();
int v=read();
G[u].push_back(v);
indeg[v]++;
}
for(int i=1;i<=n;i++)
{
if(indeg[i]==0)
{
dp[i]=1;
dfs(i);
}
}
for(int i=1;i<=n;i++) cout<<dp[i]<<endl;
return 0;
}
本文来自博客园,作者:miyasaka,转载请注明原文链接:https://www.cnblogs.com/kion/p/14133402.html