간선 방향 정하기
시간 제한2초메모리 제한256 MB
트리의 각 간선을 방향을 정해, 주어진 모든 정점 쌍 사이에 한 방향으로든 경로가 존재하도록 하는 경우의 수를 10^9+7로 나눈 나머지로 구한다.
문제
노드 개로 이루어진 트리가 주어진다. 각 노드에는 부터 까지 서로 다른 번호가 붙어 있다. 여기에 더해 트리의 노드 쌍 개 이 주어진다.
트리의 간선마다 방향을 하나씩 정하려고 한다. 주어진 노드 쌍 마다 에서 로 가는 경로가 있거나 에서 로 가는 경로가 있어야 한다. 이런 방향 배정이 모두 몇 가지인지 구하라. 답이 매우 클 수 있으므로 로 나눈 나머지를 구한다.
트리는 노드 개와 간선 개로 이루어진 그래프이며, 어느 노드에서 다른 어느 노드로도 경로가 있다.
입력
첫째 줄에 트리의 노드 수 과 주어지는 노드 쌍의 수 이 주어진다 ().
다음 개 줄에는 간선으로 이어진 두 노드의 번호가 주어진다.
그다음 개 줄 중 번째 줄에는 번째 노드 쌍을 이루는 서로 다른 두 양의 정수 와 가 주어진다. 노드 쌍은 모두 서로 다르다.
출력
조건을 만족하도록 트리의 간선에 방향을 정하는 경우의 수를 로 나눈 나머지를 한 줄에 출력한다.