만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도로 연결성

시간 제한2초메모리 제한256 MB

요약
매일 도로 하나를 무작위로 골라 열림과 닫힘 상태를 바꿉니다. 각 질의 [l, r]에서 그 기간 중 하루라도 모든 도시가 연결되는 확률을 구합니다.
난이도

어려움10점 중 8점

유형
확률, 행렬, 비트 연산, 그래프
정답자
아직 제출이 없습니다

문제

Byteland 나라에는 nn개의 도시가 있다. 모든 두 도시 사이는 양방향 도로로 연결되어 있다. 각 도로는 통행이 허용(개통)되어 있거나 금지(폐쇄)되어 있다. 0일차에는 mm개의 도로만 개통되어 있다.

1일차부터 매일 정부는 도로 하나를 고른다. 모든 도로가 뽑힐 확률은 같다. 뽑은 도로의 통행이 허용되어 있으면 정부가 그 도로를 폐쇄하고, 금지되어 있으면 개통한다.

정부는 도시 사이의 통신에 관심이 많다. qq개의 날짜 구간 [l,r][l, r]이 주어지며, 각 구간에 대해 그 구간 안의 어느 하루에 나라가 연결되어 있을 확률을 구하려고 한다. 나라가 연결되어 있다는 것은 임의의 두 도시 사이를 허용된 도로 하나 이상으로 이동할 수 있다는 뜻이다.

구하는 확률은 P/QP/Q 꼴의 기약분수로 나타낼 수 있으며, Q≢0(mod109+7)Q \not\equiv 0 \pmod{10^9 + 7}이다. 이 값을 계산하여 P⋅Q−1(mod109+7)P \cdot Q^{-1} \pmod{10^9 + 7} 형태로 출력하라.

입력

첫 줄에 두 정수 nn과 mm (2≤n≤52 \le n \le 5, 0≤m≤n⋅(n−1)20 \le m \le \frac{n \cdot (n - 1)}{2})이 주어진다. 각각 도시의 수와 0일차에 통행이 허용된 도로의 수이다.

이어지는 mm개의 줄에는 두 정수 uiu_i와 viv_i (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i)가 주어지며, ii번째 개통 도로가 잇는 두 도시를 뜻한다. 개통 도로는 모두 서로 다른 것이 보장된다.

다음 줄에는 질의의 수 qq (1≤q≤10001 \le q \le 1000)가 주어진다.

이어지는 qq개의 줄에는 두 정수 ll과 rr (0≤l≤r≤10150 \le l \le r \le 10^{15})이 주어지며, 정부가 관심을 두는 날짜 구간을 뜻한다.

출력

qq개의 줄을 출력한다. ii번째 줄에는 ii번째 질의의 답을 P⋅Q−1(mod109+7)P \cdot Q^{-1} \pmod{10^9 + 7} 형태의 정수 하나로 출력한다. 여기서 P/QP/Q는 해당 질의의 확률이다.

힌트

첫 번째 예제에서 첫 번째 질의는 정부가 아직 도로를 하나도 고르지 않은 상태이고, 시작 시점에 나라가 연결되어 있지 않으므로 확률은 00이다. 두 번째부터 아홉 번째 질의의 확률은 각각 2/32/3, 2/32/3, 8/98/9, 8/98/9, 2/32/3, 2/92/9, 20/2720/27, 20/8120/81이다.

예제2

  1. 예제 1

    입력
    3 1
    1 2
    9
    0 0
    0 1
    0 2
    0 3
    0 4
    1 1
    2 2
    3 3
    4 4
    
    예상 출력
    0
    666666672
    666666672
    888888896
    888888896
    666666672
    222222224
    407407411
    469135806
    
  2. 예제 2

    입력
    2 1
    1 2
    5
    0 0
    0 1
    1 1
    1 1000
    0 1000
    
    예상 출력
    1
    1
    0
    1
    1