fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MaxN = 1e5 + 5;
  4. long long n, dp[MaxN][2];
  5. vector<long long> a[MaxN];
  6. void dfs(long long u, long long par)
  7. {
  8. for (long long v : a[u])
  9. {
  10. if(v==par) continue;
  11. dfs(v,u);
  12. dp[u][1]+=dp[v][0];
  13. dp[u][0]+=max(dp[v][0],dp[v][1]);
  14. }
  15. }
  16. void input()
  17. {
  18. cin >> n;
  19. for (long long i=1; i<n ;i++)
  20. {
  21. long long u,v;
  22. cin >> u >> v;
  23. a[u].push_back(v);
  24. a[v].push_back(u);
  25. }
  26. }
  27. void solve()
  28. {
  29. memset(dp,0,sizeof(dp));
  30. for (long long i=1; i<=n ;i++)
  31. {
  32. dp[i][1]=1;
  33. }
  34. dfs(1,-1);
  35. long long ans=0;
  36. for (long long i=1; i<=n; i++)
  37. {
  38. for (long long j=0;j<=1; j++)
  39. {
  40. ans=max(ans,dp[i][j]);
  41. }
  42. }
  43. cout << ans;
  44. }
  45. int main()
  46. {
  47. ios_base::sync_with_stdio(0);
  48. cin.tie(0);
  49. input();
  50. solve();
  51. }
  52.  
Success #stdin #stdout 0.01s 7424KB
stdin
Standard input is empty
stdout
Standard output is empty