거리의 기댓값
시간 제한4초메모리 제한1024 MB
각 정점이 a_j에 비례한 확률로 앞선 정점에 붙는 무작위 트리가 주어집니다. 각 질의 (u, v)에 대해 두 정점 사이의 기댓값 거리를 10^9+7로 나눈 나머지로 구합니다.
문제
개의 정점으로 이루어진 트리 을 다음과 같은 방법으로 생성한다.
- 은 1번 정점만으로 이루어진 트리다.
- 2 이상의 에 대해 는 에 번 정점을 추가하고, 이를 의 정점 중 하나와 간선으로 이은 트리다. 번 정점이 번 정점과 연결될 확률은 이다. 번 정점이 번 정점과 연결되었다면 그 간선의 길이는 이다.
개의 쿼리가 주어진다. 각 쿼리마다 와 가 주어지면, 에서 번 정점과 번 정점 사이 거리의 기댓값을 구하라.
입력
첫 번째 줄에 과 가 주어진다.
두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
세 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐 각 줄에 와 가 공백으로 구분되어 주어진다.
출력
번째 쿼리의 답을 라 하자. 여기서 와 는 서로소인 음이 아닌 정수이다. 번째 줄에는 이상 미만의 정수 이며 를 만족하는 값을 출력한다. 이 수는 유일하게 존재함을 증명할 수 있다.