무작위 길
시간 제한3초메모리 제한1024 MB
각 간선의 방향이 무작위로 정해진 트리에서 시작 공원마다 안전한 길만 골라 걷는 여행의 기대 아름다움을 10^9+7로 나눈 나머지로 구합니다.
문제
Vito는 공원이 개 있는 도시에 산다. 공원에는 번부터 번까지 번호가 붙어 있다. 공원들은 개의 도로로 연결되어 있어서 임의의 두 공원 사이에 경로가 있다. 번 공원의 아름다움 값은 이다.
어젯밤 Vito는 도시를 무작위로 돌아다니기로 했다. 공원을 방문하면 그 공원에서 이어진 도로 중 하나를 같은 확률로 고르고, 그 도로의 반대편 공원으로 이동한다. 집을 나서기 전 창밖을 보니 모든 도로에는 파란 뱀이나 빨간 뱀이 한 마리씩 있었다. 파란 뱀은 번호가 작은 공원에서 큰 공원으로 지나가는 사람을 공격하고, 빨간 뱀은 번호가 큰 공원에서 작은 공원으로 지나가는 사람을 공격한다.
Vito는 공격받고 싶지 않아서, 도로를 무작위로 고를 때 안전하게 지나갈 수 있는 도로만 고려한다. 그는 긴 산책을 좋아해서 안전하게 지나갈 수 있는 도로가 하나라도 남아 있는 동안은 멈추지 않는다.
각 도로에 파란 뱀이 있을 확률과 빨간 뱀이 있을 확률이 같다고 하자. 그렇다면 번 공원에서 출발하는 여정의 기대 아름다움은 얼마인가? 경로의 아름다움은 그 경로에서 방문한 공원들의 아름다움 값의 합이다. 기대 아름다움은 가능한 모든 경로에 대해 경로의 아름다움과 Vito가 그 경로를 택할 확률의 곱을 모두 더한 값이다.
입력
첫째 줄에 이 주어진다 (). 둘째 줄에는 개의 정수 ()가 주어지며, 이는 번 공원과 번 공원을 잇는 도로가 있다는 뜻이다. 셋째 줄에는 개의 정수 ()가 주어진다.
출력
번 공원에서 출발하는 Vito 여정의 기대 아름다움이 정수 , 에 대해 이면, 번째 줄에 을 출력한다. 여기서 은 의 에 대한 모듈러 역원이다.
힌트
첫 번째 예제에서 1번 공원에서 출발한 기대 아름다움은 이고, 이를 법 로 나타내면 이다. 2번 공원에서 출발하면 기대 아름다움은 2이다.
두 번째 예제에서 두 뱀이 모두 빨간 뱀일 확률은 이다. 이 경우 1번 공원에서 출발하면 Vito는 갈 도로를 무작위로 고른다.