canuc80k7904·5/15

Dải Hình Nối Liền

Nộp bài trên LQDOJ

Bài 79 · Slope Trick

Hình thứ có khoảng ngang ban đầu và được tịnh tiến ngang với chi phí bằng độ dài dịch. Hãy làm hợp của hình liên thông, tương đương mọi cặp khoảng liên tiếp giao nhau, với tổng chi phí nhỏ nhất.

Input

  • Dòng đầu chứa .
  • dòng tiếp theo chứa và .

Output

  • In tổng độ dài tịnh tiến nhỏ nhất.

Constraints

  • .
  • .
  • Các trường hợp ngữ nghĩa quan trọng:
    • : . Không cần dịch và chi phí bằng .
    • : Các khoảng đã giao nhau liên tiếp. Chi phí tối ưu bằng .
    • : Độ rộng các hình khác nhau. Hai phía của cửa sổ chuyển trạng thái dịch khác nhau.
    • : Các khoảng cách nhau rất xa. Tổng chi phí cần kiểu bit.

Scoring

  • Subtask ( điểm): test đầu có kích thước nhỏ, phù hợp với lời giải vét cạn mô tả trong tài liệu.
  • Subtask ( điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

3
1 3
6 8
9 12

Output

4

Giải thích: Dịch hình thứ nhất sang phải đơn vị thành và hình thứ ba sang trái đơn vị thành . Khi đó nối liền với tổng chi phí ; các hai khoảng trống ban đầu cũng cho cận dưới .

Lời giải tóm tắt
  • Phân tích: Trạng thái là đầu trái mới của hình hiện tại. Min-convolution trên cửa sổ giao nhau được biểu diễn bằng dịch lazy hai phía của slope trick, sau đó cộng |x-L_i| là chi phí tịnh tiến. Đây là biểu diễn hàm lồi/lõm theo breakpoint thay vì lưu mọi giá trị trạng thái.
  • Thuật toán: Thực hiện đúng phép cập nhật nêu trên theo thứ tự dữ liệu vào. Mọi tổng chi phí hoặc lợi nhuận dùng số nguyên 64 bit.
  • Chứng minh: Invariant của cấu trúc dữ liệu trùng với sai phân của hàm quy hoạch động sau mỗi phần tử. Mỗi thao tác chỉ thay đổi đúng các breakpoint bị tác động và cập nhật phần hằng bằng đúng mức tăng hoặc giảm của cực trị. Quy nạp theo số phần tử cho thấy trạng thái cuối biểu diễn đúng toàn bộ phương án hợp lệ, nên giá trị in ra là tối ưu.
  • Độ phức tạp: Thời gian O(N log N), bộ nhớ O(N).