SuitNdtie

Treeinc

Apr 12th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<vector>
  3. using namespace std;
  4. int dp[300010];
  5. vector<int> adj[300010];
  6.  
  7. int cal(int u)
  8. {
  9.     if(dp[u])return dp[u];
  10.     int cnt = 0;
  11.     int maxtemp = 1;
  12.     for(int i=0;i<adj[u].size();i++){
  13.         int v = adj[u][i];
  14.         if(v > u)
  15.             maxtemp = max(maxtemp,cal(v) + 1);
  16.     }
  17.     return dp[u] = maxtemp;
  18. }
  19.  
  20. int main(){
  21.     int n;
  22.     scanf("%d",&n);
  23.     for(int i=1;i<n;i++){
  24.         int u,v;
  25.         scanf("%d %d",&u,&v);
  26.         adj[u].push_back(v);
  27.         adj[v].push_back(u);
  28.     }
  29.     int ans = -2e9;
  30.     for(int i = 1; i<=n;i++){
  31.         ans = max(ans,cal(i));
  32.     }
  33.     printf("%d",ans);
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment