아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

스크루지 민호 2

면접 대비

시간 제한2초메모리 제한512 MB

요약
도시 N개로 이루어진 트리에서 모든 도시와 모든 도로가 감시되도록 경찰서를 최소 몇 곳 세워야 하는지 구한다. 경찰서는 자기 도시, 이웃 도시, 그리고 연결된 도로를 감시한다.
난이도

보통10점 중 7점

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

문제

구두쇠로 소문난 민호가 다스리는 천나라에는 도시가 NN개 있다. 민호는 도로를 놓는 비용을 아끼려고 도로를 N−1N - 1개만 놓았고, 그래서 어느 두 도시 사이에도 도로를 따라가는 경로가 정확히 하나씩 있다. 도로는 모두 양방향이다.

도시를 다 세운 민호는 이제 경찰서를 짓는다. 모든 도시에 짓기는 아까워서 몇몇 도시에만 짓기로 했지만, 감시가 닿지 않는 도시나 도로가 남으면 시민이 반란을 일으킬까 걱정이다.

어떤 도시에 경찰서를 지으면 그 도시와, 그 도시에서 도로 하나로 이어진 도시와, 그 도시에 닿아 있는 도로를 감시한다. 즉 도로는 양 끝 도시 중 한 곳에라도 경찰서가 있어야 감시되고, 도시는 자기 자신이나 도로 하나로 이어진 이웃 중 한 곳에 경찰서가 있어야 감시된다.

모든 도시와 모든 도로가 감시되도록 경찰서를 지을 때, 경찰서가 필요한 도시의 최소 개수를 구하라.

입력

첫째 줄에 도시의 수 NN (2≤N≤1000002 \le N \le 100000)이 주어진다.

다음 N−1N - 1개의 줄에 도로가 한 줄에 하나씩 주어진다. 각 줄에는 공백으로 구분된 두 정수 uu, vv (1≤u,v≤N1 \le u, v \le N, u≠vu \ne v)가 있고, 도시 uu와 도시 vv가 도로 하나로 이어져 있다는 뜻이다. 주어지는 도로는 항상 트리를 이룬다.

출력

첫째 줄에 경찰서를 지어야 하는 도시의 최소 개수를 출력한다.

예제8

  1. 예제 1

    입력
    5
    4 5
    4 2
    2 3
    1 2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    2
    1 2
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3
    2 1
    2 3
    
    예상 출력
    1
    
  4. 예제 4

    입력
    6
    1 2
    1 3
    1 4
    1 5
    1 6
    
    예상 출력
    1
    
  5. 예제 5

    입력
    6
    1 2
    2 3
    3 4
    4 5
    5 6
    
    예상 출력
    3
    
  6. 예제 6

    입력
    7
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    
    예상 출력
    3
    
  7. 예제 7

    입력
    10
    1 2
    2 3
    3 4
    1 5
    2 6
    3 7
    4 8
    4 9
    2 10
    
    예상 출력
    4
    
  8. 예제 8

    입력
    15
    1 2
    1 3
    2 4
    2 5
    3 6
    3 7
    4 8
    4 9
    5 10
    5 11
    6 12
    6 13
    7 14
    7 15
    
    예상 출력
    5