종속 사건
시간 제한60초메모리 제한1024 MB
각 사건이 부모 사건의 발생 여부에 따라 조건부 확률을 갖는 루트 트리에서, 두 사건이 모두 발생할 확률을 1e9+7로 나눈 값으로 구하는 문제입니다.
문제
개의 사건이 있고, 각각 번부터 번까지 번호가 붙어 있다. 각 사건이 일어날 확률은 정확히 하나의 다른 사건, 즉 부모 사건의 발생 여부에 따라 달라진다. 단, 사건 은 독립 사건이다. 다시 말해 번부터 번까지의 각 사건 에 대해 세 값이 주어진다. 는 사건 의 부모 사건, 는 부모 사건이 일어났을 때 사건 가 일어날 확률, 는 부모 사건이 일어나지 않았을 때 사건 가 일어날 확률이다. 사건 에 대해서는 발생 확률 가 주어진다. 답해야 하는 쿼리가 개 있다. 각 쿼리는 서로 다른 두 사건 와 로 이루어지며, 두 사건 와 가 모두 일어났을 확률을 구해야 한다.
입력
입력의 첫 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 따른다.
각 테스트 케이스의 첫 줄에는 사건의 수 과 쿼리의 수 가 주어진다. 이어서 개의 줄이 주어지며, 번째 줄은 사건 를 나타낸다. 첫 줄에는 사건 의 발생 확률에 을 곱한 정수 가 하나 주어진다. 그다음 개의 줄에는 각각 세 정수 , , 가 주어진다. 는 사건 의 부모 사건, 는 부모 사건이 일어났을 때 사건 가 일어날 확률에 을 곱한 값, 는 부모 사건이 일어나지 않았을 때 사건 가 일어날 확률에 을 곱한 값이다. 그다음 개의 줄에는 쿼리가 주어진다. 각 줄에는 서로 다른 두 정수 와 가 있다. 각 쿼리에 대해 사건 와 가 모두 일어났을 확률을 구한다.
출력
각 테스트 케이스마다 Case #x: R1 R2 R3 … RQ 형식의 한 줄을 출력한다. 여기서 는 테스트 케이스 번호(1부터 시작)이고, 는 번째 쿼리에 대해 구한 확률을 로 나눈 나머지이다. 이 값은 다음과 같이 정의된다. 번째 쿼리의 답을 기약분수 로 나타내자. 그러면 는 합동식 을 만족하고 이상 이하인 값이다. 이 문제의 제약 조건에서 이러한 는 항상 존재하고 유일하게 정해진다.
제한
- .
- .
- 모든 에 대해 이고 .
- 번부터 번까지의 각 에 대해 .
- 번부터 번까지의 각 에 대해 .
- .