trang chủ / bài tập / bookshlfgo

Giá sách (Khó)

Đề bài

Mô tả

N quyển sách cần xếp lên các kệ. Sách phải được xếp đúng theo thứ tự đã cho: mỗi kệ chứa một đoạn liên tiếp các quyển sách, kệ thứ nhất chứa các quyển đầu tiên, kệ thứ hai chứa đoạn tiếp theo, và cứ như vậy.

Quyển sách thứ i có chiều cao Hi và chiều rộng Wi. Tổng chiều rộng các quyển sách trên cùng một kệ không được vượt quá L. Chiều cao của một kệ bằng chiều cao của quyển sách cao nhất trên kệ đó.

Hãy tìm cách chia sao cho tổng chiều cao của tất cả các kệ là nhỏ nhất.

Dữ liệu vào

  • Dòng 1: hai số nguyên NL.
  • N dòng tiếp theo: dòng thứ i chứa hai số nguyên HiWi, là chiều cao và chiều rộng của quyển sách thứ i.

Dữ liệu ra

Một số nguyên duy nhất: tổng chiều cao nhỏ nhất của các kệ.

Ràng buộc

  • 1N100000
  • 1L109
  • 1Hi106
  • 1WiL

Ví dụ

Input Output Giải thích
5 10
5 7
9 2
8 5
13 2
3 8
21 Kệ 1 chứa sách 1 (rộng 7, cao 5). Kệ 2 chứa sách 2, 3, 4 (rộng 2+5+2=9, cao max(9,8,13)=13). Kệ 3 chứa sách 5 (rộng 8, cao 3). Tổng 5+13+3=21.
4 2
1 1
10 1
10 1
1 1
12 Cách chia tốt nhất: kệ 1 chứa sách 1 (cao 1), kệ 2 chứa sách 2 và 3 (cao 10), kệ 3 chứa sách 4 (cao 1), tổng bằng 12. Cách tham lam xếp đầy từng kệ cho ra {1,2} và {3,4} với tổng 10+10=20, tệ hơn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0