Hướng dẫn giải của Chỉnh Sửa Tình Bạn
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lời giải: Chỉnh Sửa Tình Bạn
Hướng tiếp cận
Quy hoạch động trên bitmask, phân hoạch đỉnh thành các clique.
Nhận xét quan trọng
Tính chất yêu cầu tương đương với: trong đồ thị phần bù, nếu không có cạnh giữa và , thì không thể có cạnh . Điều này có nghĩa mỗi thành phần liên thông trong đồ thị thỏa mãn phải là một clique (đồ thị đầy đủ).
Do đó, bài toán quy về: phân hoạch đỉnh thành các clique sao cho tổng số cạnh cần thêm/xóa là nhỏ nhất.
Thuật toán
Tiền xử lý: Với mỗi tập con (bitmask), tính
flip[S]= số cạnh cần thay đổi nếu thành clique.DP: = chi phí tối thiểu để phân hoạch các đỉnh trong
maskthành các clique.- Chuyển trạng thái:
Duyệt tất cả tập con của
maskbằng kỹ thuật subset enumeration.
Độ phức tạp
- Thời gian:
- Bộ nhớ:
Bình luận