Đếm số cách tô màu (hard)

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 3.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Có một đồ thị vô hướng với ~n~ đỉnh và ~m~ cạnh, mỗi đỉnh được đánh số từ ~1~ đến ~n~. Bạn cần giải ~q~ truy vấn, truy vấn thứ ~i~ bạn được cho một số ~k_i~ tức trong truy vấn đó bạn chỉ có ~k_i~ loại màu.

Yêu cầu: Với mỗi truy vấn tô màu mỗi đỉnh của đồ thị trên sao cho hai đỉnh có cạnh nối không cùng màu. Tính số cách tô màu hợp lệ, chia lấy dư cho ~10^9+7~

Input

  • Dòng đầu tiên gồm ba số nguyên ~n, m, q(1 \le n \le 10^5, 0 \le m \le min(10^5,n*(n-1)/2),1 \le q \le 1000)~ ~-~ lần lượt là thị số lượng đỉnh, số lượng cạnh và số lượng truy vấn.
  • ~m~ dòng tiếp theo mỗi dòng gồm hai số nguyên ~u_i, v_i~ - có một cạnh nối giữa chúng. Đảm bảo không có cạnh trùng lặp.
  • ~q~ dòng tiếp theo mỗi dòng gồm một số nguyên ~k_i(1 \le k_i \le 10^9)~ ~-~ trong truy vấn đó có ~k_i~ loại màu.

Output

  • Gồm ~q~ dòng, dòng thứ ~i~ là kết quả của truy vấn thứ ~i~ chia lấy dư cho ~10^9+7~.

Sample Input

5 4 4
1 2
2 3
3 4
4 5
2
3
4
5

Sample Output

2
48
324
1280

Subtask

  • Có ~18\%~ số test thỏa mãn: ~1 \le n,k \le 8, 1 \le q \le 50~.
  • Có ~26\%~ số test thỏa mãn: ~1 \le n \le 15~.
  • Có ~20\%~ số test thỏa mãn: ~1 \le m \le 24~.
  • Có ~36\%~ số test thỏa mãn: Mỗi đỉnh có đúng hai cạnh nối với nó.

Hint

  • Brute đi nào

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.