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

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

소 친구 방문하기

면접 대비

시간 제한1초메모리 제한128 MB

요약
정점 N개인 트리에서 서로 인접한 두 정점을 함께 고르지 않으면서 최대로 고를 수 있는 정점 수를 구한다.
난이도

보통10점 중 6점

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

문제

여러 주 동안 열심히 일한 끝에 베시는 드디어 휴가를 얻었습니다! 무리에서 가장 사교적인 소인 베시는 11번부터 NN번까지 (1≤N≤500001 \le N \le 50000) 번호가 매겨진 NN마리의 소 친구들을 방문하고 싶어 합니다.

소들은 특이한 도로망을 만들어 두었습니다. 정확히 N−1N-1개의 도로가 있으며, 각 도로는 두 소 C1C_1과 C2C_2 (1≤C1≤N1 \le C_1 \le N, 1≤C2≤N1 \le C_2 \le N, C1≠C2C_1 \ne C_2)를 연결합니다. 그리고 임의의 두 소 사이에는 도로로 이루어진 경로가 유일하게 존재합니다. 즉, 도로망은 트리 구조입니다.

농부 존은 베시가 빨리 농장으로 돌아오기를 바랍니다. 그래서 그는 두 소가 도로로 직접 연결되어 있으면 둘 다 방문해서는 안 된다고 지시했습니다. 물론 베시는 휴가를 최대한 길게 보내고 싶으므로, 방문할 수 있는 소의 최대 수를 구하려고 합니다.

입력

  • 첫째 줄: 정수 NN 하나가 주어집니다.
  • 둘째 줄부터 NN번째 줄까지: 각 줄에는 하나의 도로를 나타내는 두 정수 C1C_1과 C2C_2가 공백으로 구분되어 주어집니다.

출력

  • 첫째 줄: 베시가 방문할 수 있는 소의 최대 수를 나타내는 정수 하나를 출력합니다.

힌트

베시는 7마리의 소를 알고 있습니다. 소 6과 2가 도로로 직접 연결되어 있고, 소 3과 4, 소 2와 3 등도 마찬가지입니다. 아래 그림은 소들을 잇는 도로를 나타냅니다.

1--2--3--4
   |
5--6--7

베시는 네 마리의 소를 방문할 수 있습니다. 가장 좋은 조합은 윗줄에서 두 마리, 아랫줄에서 두 마리를 방문하는 것입니다. 소 6을 방문하면 소 5와 7을 방문할 수 없으므로, 소 5와 7을 방문합니다. 윗줄에서는 {1, 3}, {1, 4}, {2, 4} 중 하나를 방문할 수 있습니다.

예제1

  1. 예제 1

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