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

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

매칭

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

요약
트리가 주어질 때 최대 매칭의 크기와 최대 매칭의 개수를 m으로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

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

문제

무방향 그래프에서 매칭(matching)이란 간선들의 부분집합으로, 각 정점이 선택된 간선 중 최대 하나에만 인접하도록 고른 것입니다. 최대 매칭(maximum matching)은 포함된 간선의 수가 가능한 한 큰 매칭을 뜻합니다.

정점이 nn개인 트리가 주어집니다. 이 트리의 최대 매칭의 크기와, 최대 매칭의 개수를 구하세요. 단, 개수는 mm으로 나눈 나머지를 출력합니다.

입력

첫째 줄에 트리의 정점 수를 나타내는 정수 nn이 주어집니다 (1≤n≤1 500 0001 \le n \le 1\,500\,000). 정점은 11번부터 nn번까지 번호가 매겨져 있습니다.

이어지는 n−1n-1개의 줄에는 트리의 간선이 한 개씩 주어집니다. 각 줄에는 두 정수 aa와 bb가 주어지며, 이는 정점 aa와 정점 bb를 잇는 간선을 의미합니다 (1≤a,b≤n1 \le a, b \le n).

마지막 줄에는 정수 mm이 주어집니다 (1≤m≤1091 \le m \le 10^9).

출력

첫째 줄에 트리의 최대 매칭의 크기를 출력합니다.

둘째 줄에 최대 매칭의 개수를 mm으로 나눈 나머지를 출력합니다.

예제1

  1. 예제 1

    입력
    5
    1 2
    3 2
    4 5
    1 4
    17
    
    예상 출력
    2
    3