택시
시간 제한1.5초메모리 제한256 MB
가중치가 있는 트리에 M대의 택시와 M명의 손님을 배치하는 모든 경우에 대해, 최대 비용 완전 매칭의 총 거리 합을 10^9+7로 나눈 나머지를 구한다.
문제
정점 개로 이루어진 무향 트리가 주어진다. 각 간선에는 길이가 있으며, 이는 양의 정수이다. 이 트리에는 대의 택시와 명의 손님이 나타나며, 각 택시와 각 손님은 정확히 한 정점에 나타난다. 한 정점에 여러 대의 택시나 여러 명의 손님이 있을 수도 있다.
택시 앱은 손님과 택시를 연결해 준다. 요즘은 손님이 택시가 자신을 태우러 가는 거리까지 요금을 낸다. 택시 앱은 몹시 탐욕스러워서, 택시가 각자의 손님에게 이동하는 거리의 합이 최대가 되도록 손님과 택시를 연결한다. 각 택시는 정확히 한 명의 손님에게 배정되고, 각 손님은 정확히 한 대의 택시에 배정된다.
택시와 손님이 트리에 나타나는 서로 다른 경우의 수는 가지이다. 각 경우마다 택시 앱이 고른 탐욕스러운 연결에 따라 택시가 이동하는 거리의 합을 구할 수 있다. 이 거리들을 모두 더한 값을 로 나눈 나머지를 구하시오.
입력
첫 번째 줄에 두 정수 과 이 주어진다 ().
다음 개의 줄에 각각 세 정수 , , 이 주어진다. 이는 정점 와 사이에 길이 인 무향 간선이 있음을 뜻한다 (). 주어진 간선들이 트리를 이룸이 보장된다.
출력
필요한 합을 로 나눈 나머지를 한 줄에 출력한다.