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

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

도시 관광

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

요약
삼각형에서 시작해 새 정점을 기존 간선 양 끝점에 연결하며 만든 그래프에서 가장 긴 단순 사이클 길이를 구합니다.
난이도

어려움10점 중 8점

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

문제

여름이면 유럽의 오래된 도시는 거리를 돌아다니며 명소를 구경하는 관광객으로 붐빈다.

오래된 도시 상당수는 설계도 없이 자연스럽게 커졌지만, 커지는 방식은 서로 비슷하다. 도시는 명소 세 곳에서 시작했고, 세 곳은 두 곳씩 짝지어 양방향 도로로 이어져 있었다. 그 뒤로 명소가 하나씩 늘어났다. 새로 생긴 명소는 이미 도로로 직접 이어져 있던 서로 다른 기존 명소 두 곳에 새 양방향 도로 두 개로 연결되었다.

이런 도시를 찾은 관광객은 되도록 많은 명소를 도는 관광 코스를 짜고 싶다. 코스는 아무 명소에서나 출발할 수 있고, 출발한 명소에서 끝나야 한다. 각 도로는 최대 한 번, 각 명소도 최대 한 번만 지난다. 출발한 명소만 예외로 정확히 두 번 지난다.

도시가 커진 과정이 주어진다. 관광 코스 하나가 지날 수 있는 서로 다른 명소의 최대 개수를 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 도시에 있는 명소의 총 개수 NN이 주어진다. 명소에는 1번부터 NN번까지 번호가 붙어 있다. 1, 2, 3번은 도시가 시작될 때의 명소 세 곳이고, 4번부터 NN번까지는 도시에 추가된 순서대로 번호가 붙어 있다.

다음 N−3N-3개의 줄에는 공백으로 구분된 두 정수 AA와 BB가 주어진다. 그 줄에 해당하는 명소가 AA번 명소, BB번 명소와 도로로 연결되었다는 뜻이다. 이 줄 가운데 첫 번째 줄은 4번 명소에, 두 번째 줄은 5번 명소에 대응하며, 나머지도 같은 방식이다.

제한

  • 1≤T≤501 \le T \le 50
  • 4≤N≤10004 \le N \le 1000

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 테스트 케이스 번호이고 1부터 시작한다. y는 그 도시에서 관광 코스 하나가 지날 수 있는 명소의 최대 개수이다.

예제2

  1. 예제 1

    입력
    2
    5
    1 2
    2 1
    6
    1 2
    1 4
    4 5
    
    예상 출력
    Case #1: 4
    Case #2: 6
    
  2. 예제 2

    입력
    1
    4
    1 2
    
    예상 출력
    Case #1: 4