trang chủ / đề bài / thhv19_cpt_11_b

Bài toán cái túi

Đề bài

Mô tả

Sắp tới, Alice cùng Bob sẽ đi dã ngoại cùng với lớp. Để chuẩn bị cho chuyến đi này Alice đã mua cho mình một chiếc túi siêu to khổng lồ có khả năng chứa H kilogram và nhờ Bob chọn các đồ vật cần thiết nhất để mang đi dã ngoại.

Có tất cả n đồ vật, mỗi đồ vật đều có một độ nặng là Wi kilogram và độ cần thiết là Vi. Bob cần chọn một số đồ vật (mỗi đồ vật chọn nhiều nhất một lần, có thể không chọn đồ vật nào) để cho vào chiếc túi mà Alice mua sao cho tổng độ nặng của các vật Bob chọn không được vượt quá H và tổng độ cần thiết của các vật đó là lớn nhất có thể.

Bob vẫn chưa thể tìm được cách tối ưu nhất để chọn các đồ vật, các bạn hãy giúp Bob nhé.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên T là số bộ test (1≤T≤10).
  • Các dòng sau gồm T bộ test, mỗi bộ test được miêu tả bằng 3 dòng:
    • Dòng đầu tiên gồm hai số nguyên n và H lần lượt là số lượng đồ vật và khả năng chứa của túi đồ.
    • Dòng thứ hai gồm n số nguyên dương W1,W2,…,Wn, trong đó Wi là độ nặng của vật thứ i.
    • Dòng thứ ba gồm n số nguyên dương V1,V2,…,Vn, trong đó Vi là độ cần thiết của vật thứ i.

Dữ liệu ra

Gồm T dòng, mỗi dòng là tổng độ cần thiết lớn nhất có thể của bộ test tương ứng.

Ràng buộc

  • 1≤T≤10.
  • 1≤n≤40.
  • 1≤Wi≤1012, 1≤H≤1012.
  • 1≤Vi≤1012.

Subtasks

  • Subtask 1 (10% số test): n≤18, Wi≤1012, H≤1012.
  • Subtask 2 (20% số test): n≤40, Wi≤1000, H≤1000.
  • Subtask 3 (70% số test): n≤40, Wi≤1012, H≤1012.

Ví dụ

Input Output Giải thích
1
5 16
5 6 12 16 9
8 9 7 9 10
19 Chọn vật thứ 2 và 5: tổng độ nặng 6+9=15≤16, tổng độ cần thiết 9+10=19.
3
3 5
6 7 8
1 2 3
4 10
3 7 5 5
4 9 5 5
2 1000000000000
1000000000000 1
1000000000000 1000000000000
0
13
1000000000000
Ví dụ bổ sung (không có trong đề gốc). Bộ thứ nhất: mọi vật đều nặng hơn H=5 nên không chọn được vật nào. Bộ thứ hai: chọn vật 1 và 2, tổng độ nặng đúng bằng H=10 (được phép), tổng độ cần thiết 13. Bộ thứ ba: hai vật có tổng độ nặng 1012+1>H nên chỉ chọn được một vật, đáp án là 1012.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0