균형의 수호자

시간 제한1.5초메모리 제한1024 MB

요약
가중치 트리의 각 정점에서 다른 모든 정점까지의 거리 분산을 구하고, 분산이 가장 작은 정점을 번호가 작은 순으로 골라 출력한다.
난이도

어려움10점 중 8점

유형
트리, DFS, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

균형의 수호자 경인이 앞에 NN개의 정점으로 이루어진 트리가 주어졌다! 경인이는 트리의 균형을 이루기 위해 다음과 같은 루트를 고를 것이다.

  • 정점 ii와 모든 정점 사이 거리의 분산을 V_iV\_i라 할 때 V_iV\_i가 가장 작은 정점을 루트로 고른다. 만약 이러한 정점이 여러 개라면 번호가 가장 작은 정점을 고른다.

경인이가 고를 루트를 찾아보자.

입력

첫 번째 줄에 정점의 개수 NN이 주어진다. (1≤N≤200,000)(1 \le N \le 200\\,000)

두 번째 줄부터 N−1N-1개 줄에 걸쳐 간선의 정보인 정수 uu, vv, ww가 공백으로 구분되어 주어진다. 이는 정점 uu와 vv를 거리 ww로 잇는 간선이라는 의미이다. (1≤u,v≤N;u≠v;1≤w≤10,000)(1 \le u, v \le N; u \neq v; 1 \le w \le 10\\,000)

출력

경인이가 고를 루트를 출력한다.

힌트

계산 과정 중 수가 너무 작아지거나 커지는 것에 유의해야 한다.

  • 평균: E\[X]=1∣X∣∑_x∈Xx\mathrm{E}\[X]=\frac{1}{|X|}\sum\limits\_{x \in X}x
  • 분산: Var\[X]=E\[(X−E\[X])2]=1∣X∣∑_x∈X(x−E\[X])2\mathrm{Var}\[X]=\mathrm{E}\[(X-\mathrm{E}\[X])^2]=\frac{1}{|X|}\sum\limits\_{x \in X}(x-\mathrm{E}\[X])^2

예제1

  1. 예제 1

    입력
    4
    1 2 8
    1 3 8
    3 4 9
    
    예상 출력
    3