[DHBB24 - HVT - 11] Bài 3: Bẫy chuột
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
Chú mèo máy Doreamon có một mê cung khổng lồ với ~n~ căn phòng được đánh số ~1 \dots n~ và ~n - 1~ lối đi sao cho tất cả các phòng đều có thể đi đến được với nhau. Thật không may, một con chuột đã lẻn vào mê cung. Doreamon cực kỳ sợ chuột nên đặt bẫy chuột trong phòng ~t~. Rõ ràng chuột tránh được căn phòng có bẫy nên Doreamon phải nghĩ ra chiến lược tốt hơn để dụ chuột vào bẫy. Chuột liên tục chạy xung quanh và không bao giờ dừng lại, trừ khi nó không còn nơi nào để di chuyển. Doreamon cũng biết rằng con chuột để lại dấu chân ở mỗi lối đi mà nó đi qua. Con chuột sau đó sẽ không sử dụng lại lối đi ấy một lần nào nữa. Doreamon có thể dọn sạch sẽ lối đi để lại dấu chân hoặc chặn lối đi bằng đá. Bằng cách chặn các lối đi hoặc dọn sạch vết chân của chuột, anh ta muốn buộc con chuột chạy vào bẫy. Anh ấy muốn thực hiện điều này với số lần tác động (dọn sạch hoặc chặn đá) tối thiểu vì anh ấy cảm thấy rất khó chịu khi có con chuột.
Chúng ta có thể mô tả đây như một trò chơi dành cho hai người chơi. Con chuột cố gắng tối đa hóa số lần tác động của Doreamon. Doreamon cố gắng giành chiến thắng với số lần tác động tối thiểu. Người chơi đầu tiên là Doreamon. Đến lượt của mình, anh ta có thể dọn sạch một lối đi có vết chân chuột hoặc chặn một lối đi. Việc lối đi bị chặn có vết chân hay không không quan trọng. Anh ta không thể bỏ chặn một lối đi. Tuy nhiên, anh ta có thể chọn không làm gì cả. Lượt đi mà Doreamon quyết định không làm gì sẽ không được tính là lượt đi. Khi đến lượt chuột, chuột sẽ chọn một lối đi sạch sẽ không bị chặn và chạy sang phòng bên cạnh theo lối đi đó. Nếu không có lối đi như vậy dẫn từ phòng hiện tại của chuột, chuột sẽ không di chuyển.
Ban đầu, tất cả các lối đi đều sạch sẽ, chuột ở phòng ~m~, bẫy ở phòng ~t~ và lượt đầu tiên dành cho Doreamon. Số lần thao tác (dọn sạch hoặc chặn đá các lối đi) tối thiểu mà Doreamon cần là bao nhiêu nếu cả hai nhân vật chơi tối ưu (mục tiêu của chuột là tối đa hóa số lần di chuyển của Doreamon)?.
Yêu cầu: Viết chương trình tính số thao tác ít nhất của Doreamon để bẫy được chuột.
Input
- Dòng đầu tiên: chứa các số nguyên ~n, t, m~ cách nhau bằng dấu cách.
- ~n - 1~ dòng tiếp theo, trong mỗi dòng ghi ~a_i~ và ~b_i~, cách nhau bằng dấu cách, biểu thị lối đi giữa phòng ~a_i~ và ~b_i~.
Output
- In ra số thao tác ít nhất của Doreamon để bẫy được chuột.
Bình luận