[DHBB25 - DX36 - 10] Bài 3: Vị trí dữ liệu
Xem dạng PDFTrong 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
Mạng viễn thông của một công ty lớn có ~n~ máy chủ được đánh số từ ~1~ đến ~n~. Một số cặp máy chủ được kết nối với nhau bằng các kênh truyền thông hai chiều, tổng cộng có ~m~ kênh trong mạng. Mạng các máy chủ được bố trí sao cho có thể truyền dữ liệu qua các kênh truyền từ máy chủ này sang máy chủ khác, có thể sử dụng một hoặc nhiều máy chủ trung gian.
Tập ~A~ các máy chủ được gọi là có khả năng chịu lỗi, nếu khi bất kỳ một kênh truyền nào không khả dụng thì với bất kỳ máy chủ ~x~ nào không có trong tập hợp này, có một cách để gửi dữ liệu qua các kênh khác đến máy chủ ~x~ từ ít nhất một máy chủ của tập ~A~.
Để cải thiện tính khả dụng của dữ liệu và khả năng chịu đựng thảm họa, các nhà phát triển muốn nhân bản dữ liệu của họ bằng cách đặt nó đồng thời trên nhiều máy chủ, tạo thành một tập hợp có khả năng chịu lỗi. Để giảm thiểu chi phí, cần chọn tập có khả năng chịu lỗi tối thiểu về số lượng máy chủ. Ngoài ra, để biết mạng có độ mềm dẻo như thế nào, bạn cần đếm số cách chọn một tập như vậy và vì số cách này có thể lớn nên bạn cần tìm phần dư của phép chia số này cho ~10^9 + 7~.
Yêu cầu: Tìm số lượng máy chủ tối thiểu trong một tập các máy chủ có khả năng chịu lỗi và số cách để chọn tập đó theo mô-đun ~10^9 + 7~.
Input
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ (~2 \le n \le 2 \times 10^5~; ~1 \le m \le 2 \times 10^5~).
- ~m~ dòng tiếp theo, mỗi dòng chứa hai số nguyên là chỉ số của hai máy chủ được nối bởi một kênh. Dữ liệu đảm bảo đồ thị liên thông, không có đa cạnh và không có khuyên.
Output
- In hai số nguyên ~k~ và ~c~, trong đó ~k~ là số lượng máy chủ tối thiểu và ~c~ là số cách chọn tập hợp đó theo mô-đun ~10^9 + 7~.
Sample Input 1
5 5
1 2
2 3
3 4
3 5
4 5
Sample Output 1
2 3
Bình luận