DHBB 2026 - DX09 - 11 - Khôi phục tính liên thông

Xem dạng PDF

Gửi bài giải

Điểm: 110,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout
Test chính thức

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Trong một đồ thị có hướng, hai đỉnh ~u~ và ~v~ được gọi là liên thông mạnh nếu tồn tại đường đi từ ~u~ đến ~v~ và đường đi từ ~v~ đến ~u~. Tính chất này có tính bắc cầu, nên các đỉnh được chia thành những tập gọi là thành phần liên thông mạnh (SCC). Một đỉnh trong SCC thì liên thông mạnh với tất cả các đỉnh trong cùng SCC (kể cả chính nó), và không liên thông mạnh với bất kỳ đỉnh nào ngoài SCC đó.

Trong giờ học đồ thị, An vẽ một đồ thị có hướng với ~n~ đỉnh và đánh dấu các SCC của nó. Trong giờ nghỉ, Bình nghịch ngợm xóa hướng của một số cạnh. Anh ta muốn An có thể khôi phục duy nhất hướng đã xóa dựa vào thông tin về các cạnh còn lại và phân hoạch các SCC sau giờ nghỉ.

Hãy giúp Bình xác định số cạnh tối đa có thể xóa hướng, và số cách chọn tập cạnh đó.

Cụ thể, cần tìm tập con ~A~ của các cạnh sao cho:

  • Nếu xóa hướng các cạnh trong ~A~, thì dựa vào phân hoạch SCC ban đầu và các cạnh còn lại, ta có thể khôi phục duy nhất hướng của các cạnh trong ~A~ sao cho các SCC không đổi.

In ra kích thước lớn nhất của tập ~A~, và số tập như vậy. Do số tập có thể rất lớn, hãy in ra modulo ~10^9+7~.

Input

  • Dòng ~1~: ba số nguyên ~n, m~ ~(2 \le n, m \le 2000; 1 \le m \le 2000)~;

  • ~m~ dòng tiếp theo, dòng thứ ~i~ chứa ~u_i, v_i~ ~(1 \le u_i, v_i \le n; u_i \ne v_i)~. Bảo đảm không có hai cạnh trùng nhau, giữa hai đỉnh có nhiều nhất một cạnh, không phân biệt hướng.

Output

  • Dòng ~1~: số nguyên ~k~ là kích thước lớn nhất của tập cạnh có thể xóa hướng;

  • Dòng ~2~: số nguyên ~c~ là số tập cạnh như vậy modulo ~10^9+7~.

Scoring

Subtask Điểm Ràng buộc
1 ~11\%~ ~n, m \le 14~
2 ~9\%~ ~n, m \le 20~
3 ~12\%~ Có cạnh ~(i,i+1)\ \forall i: 1 \le i \le n-1~; ~u_j<v_j\ \forall j~</td>
4 ~13\%~ ~u_j<v_j\ \forall j~</td>
5 ~20\%~ Có cạnh ~(i,i+1)\ \forall i: 1 \le i \le n-1~ và ~(n,1)~
6 ~21\%~ Đồ thị liên thông mạnh
7 ~14\%~ Không có ràng buộc bổ sung

Sample Input 1

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

Sample Output 1

3
3

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.