Cho một cây xương rồng , chúng tôi muốn cân các cạnh của nó theo cách mà
- Đối với mỗi đỉnh, tổng trọng số của các sự cố cạnh đối với đỉnh không quá 1.
- Tổng của tất cả các trọng số cạnh được tối đa hóa.
Rõ ràng câu trả lời không nhiều hơn cho n đỉnh ( \ sum d_i = 2D trong đó d_i là tổng của một đỉnh và D là tổng trên mỗi cạnh). Ràng buộc này có thể đạt được cho các đồ thị chu kỳ bằng cách cân mỗi cạnh 1/2.
Tôi tìm thấy một thuật toán tham lam cho cây. Chỉ cần gán 1 cho các sự cố cạnh cho lá và loại bỏ chúng và hàng xóm của chúng khỏi biểu đồ trong các lần lặp lại. Điều này cắt tỉa cây xương rồng xuống một loạt các chu kỳ liên kết với nhau. Tại thời điểm này, tôi giả sử các chu kỳ còn lại không được liên kết với nhau và có trọng số mỗi cạnh 1/2. Điều này nhận được 9/10 trường hợp thử nghiệm, nhưng, tất nhiên, không đầy đủ.
Vì vậy, làm thế nào chúng ta có thể giải quyết vấn đề này cho xương rồng nói chung? Tôi muốn gợi ý cho các giải pháp đầy đủ, nhưng một trong hai là tốt.
Câu hỏi này liên quan đến một vấn đề từ InterviewStreet CompanySprint . Tôi đã thi đấu nhưng tôi muốn có một vài suy nghĩ về một vấn đề (các giải pháp không được đưa ra và tôi đã đập đầu vào tường về vấn đề này).