Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C] Cắt thanh thép tối đa doanh thu với giới hạn chiều dài đoạn

    Xưởng cơ khí có thanh thép dài nnn mét. Có thể bán các đoạn dài tối đa LLL mét, với bảng giá price[1..L]price[1..L]price[1..L] — trong đó price[j]price[j]price[j] là giá một đoạn dài jjj mét. Hãy chọn cách cắt để tổng doanh thu lớn nhất.

    Dùng DP: dp[i]=max⁡1≤j≤min⁡(L,i){dp[i−j]+price[j]}dp[i] = \max_{1 \le j \le \min(L, i)} \{ dp[i-j] + price[j] \}dp[i]=max1≤j≤min(L,i)​{dp[i−j]+price[j]}, với dp[0]=0dp[0] = 0dp[0]=0.

    Ví dụ n=8n = 8n=8, L=4L = 4L=4, price=[1,5,8,9]price = [1, 5, 8, 9]price=[1,5,8,9]: cắt thành 2+3+32 + 3 + 32+3+3 được 5+8+8=215 + 8 + 8 = 215+8+8=21.

    • Định dạng đầu vào:

      Dòng 1: nnn, LLL. Dòng 2: LLL số nguyên price[1..L]price[1..L]price[1..L].

    • Ràng buộc đầu vào:

      1≤L≤n≤10001 \le L \le n \le 10001≤L≤n≤1000, 0≤price[j]≤1060 \le price[j] \le 10^60≤price[j]≤106.

    • Định dạng đầu ra:

      Một số nguyên — doanh thu tối đa.

    Ví dụ:

    Đầu vào:

    8 4
    1 5 8 9
    

    Đầu ra:

    21

    Giải thích:

    Cắt 2+3+3 cho doanh thu 5+8+8=21.

    Đang tải editor...