P1137 旅行計劃
阿新 • • 發佈:2020-12-14
// // 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; }