canuc80k4205·6/30

Bậc Đá Tăng Dần

Nộp bài trên LQDOJ

Bài 42 · Convex Hull Trick

Có bậc đá, bậc có độ cao , và các độ cao tăng nghiêm ngặt. Một con ếch bắt đầu ở bậc .

Từ bậc , ếch có thể nhảy tới bất kỳ bậc ; cú nhảy tốn . Hãy tìm tổng chi phí nhỏ nhất để đến bậc .

Input

  • Dòng đầu chứa và .
  • Dòng thứ hai chứa .

Output

  • In chi phí nhỏ nhất để đến bậc .

Constraints

  • .
  • .
  • .

Scoring

  • Subtask ( số điểm): kích thước chính không vượt quá .
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

4 3
1 2 5 8

Output

28

Giải thích: Đường đi tối ưu là , với các chi phí . Tổng chi phí bằng .

Lời giải tóm tắt
  • Phân tích: Tìm đường đi tối thiểu trong DAG đầy đủ với chi phí nhảy là bình phương chênh lệch độ cao.
  • Thuật toán: Khai triển dp[j]+(h_i-h_j)²+c thành h_i²+c+(-2h_j)h_i+(dp[j]+h_j²). Mỗi j là một đường trong bao dưới.
  • Chứng minh: Mọi đường đi đến i có một bậc áp chót j<i. Giá trị truy vấn của đường j cộng phần cố định đúng bằng chi phí của lựa chọn đó; lấy min cho dp[i].
  • Độ phức tạp: O(n log n) thời gian, O(n) bộ nhớ.