牛客小bai月赛39 F 孤独(dp)

简介: 牛客小bai月赛39 F 孤独(dp)

牛客小白月赛39 F 孤独

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int ans = INT_MAX, n;
int sz[1000006];
int dp[1000006];
vector<int>vec[1000006];
void dfs(int i, int fa) {
  sz[i] = 1;
  int mx1 = 0;
  int mx2 = 0;
  int mx3 = 0; //第三大的子树
  for (auto j : vec[i]) {
    if (j == fa)continue;
    dfs(j, i);
    sz[i] += sz[j];
    if (sz[j] > sz[mx1]) {
      mx3 = mx2;
      mx2 = mx1;
      mx1 = j;
    } else if (sz[j] > sz[mx2]) {
      mx3 = mx2;
      mx2 = j;
    } else if (sz[j] > sz[mx3]) {
      mx3 = j;
    }
    dp[i] = max(dp[mx1], sz[mx2]);
  }
  ans = min(ans, max(n - sz[i], max(dp[mx1], max(dp[mx2], sz[mx3]))));
}
int main() {
  int i, j, x, y;
  scanf("%d", &n);
  for (i = 1; i < n; i++) {
    scanf("%d%d", &x, &y);
    vec[x].push_back(y);
    vec[y].push_back(x);
  }
  dfs(1, 0);
  printf("%d\n", ans);
  return 0;
}


目录
相关文章
|
9月前
|
索引
洛谷P1231 教辅的组成
洛谷P1231 教辅的组成
洛谷1102 A-B 暴力法
判断第 i 个数和 i 之后的每一个数的绝对值是否等于目标结果
|
人工智能
|
人工智能
好题分享
好题分享
65 0
|
移动开发 算法
『牛客|每日一题』N皇后问题
基础算法无论在研究生面试还是求职面试都是十分重要的一环,这里推荐一款算法面试神器:牛客网-面试神器;算法题只有多刷勤刷才能保持思路与手感,大家赶紧行动起来吧(温馨提示:常见的面试问答题库也很nice哦 https://www.nowcoder.com/link/pc_csdncpt_ll_sf
88 0
『牛客|每日一题』N皇后问题
|
机器学习/深度学习 算法 搜索推荐
洛谷每日三题之第六天
洛谷每日三题之第六天
洛谷 P1469 找筷子
题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子需要长度一样的才能组成一双,更麻烦的是CX找出来的这些筷子数量为奇数,但是巧合的是,这些筷子中只有一只筷子是落单的,其余都成双,善良的你,可以帮CX找出这只落单的筷子的长度吗? 输入输出格式 输入格式:   第一行读入一个数N,它代表CX找到的筷子的根数。
1190 0
|
算法
洛谷 P1816 忠诚
题目描述 老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。
1144 0

热门文章

最新文章