Chào mừng bạn đến với Selfomy Hỏi Đáp, hãy Hỏi bài tập hoặc Tham gia ngay
+2 phiếu
730 lượt xem
thanhtrong trong Tin học lớp 11 bởi Thạc sĩ (6.2k điểm)

Trong truyện cổ tích "Cây Khế" ta đã biết rằng chim thần chở người anh với một cái túi ba gang đến hòn đảo đầy vàng bạc châu báu. Người em băn khoăn không biết chọn đồ vật nào cho vào túi vì chỉ có một cái túi ba gang..

Giả sử rằng trên hòn đảo kia có N đồ vật khác nhau, đồ vật thứ i có giá trị là ai và có thể tích là bi. Cũng giả sử rằng cái túi mà người em mang đi chỉ có thể tích là M. Bạn hãy giúp người em chọn ra trong N đồ vật trên một số đồ vật sao cho tổng thể tích của các đồ vật được chọn không vượt quá M và tổng giá trị các đồ vật được chọn là lớn nhất.

Input: Cho trong file văn bản CAYKHE.INP

  • Dòng đầu tiên ghi hai số N, M (N,M≤100)
  • N dòng tiếp theo, dòng thứ i ghi hai số ai và bi lần lượt là giá trị và thể tích của đồ vật thứ i (ai, bi≤100)

Output: Ghi ra file văn bản CAYKHE.OUT

  • Dòng đầu tiên ghi tổng giá trị lớn nhất có thể cho vào trong túi
  • Dòng thứ hai ghi số hiệu các đồ vật được cho vào trong túi. Đầu tiên ghi K là số lượng đồ vật được chọn, tiếp theo là K số thể hiện số hiệu các đồ vật được chọn.

Ví dụ:

CAYKHE.INP

CAYKHE.OUT

5 10

20 3

19 1

30 7

24 3

15 6

63

3 1 2 4

EpicSans bởi Học sinh (165 điểm)
đây là tin ý hả :)))

1 Câu trả lời

0 phiếu
caotam803560 bởi Học sinh (5 điểm)

#include
using namespace std;
int main() {
    freopen("CAYKHE.INP","r",stdin);
    freopen("CAYKHE.OUT","w",stdout);
    int N, M;
    cin >> N >> M;
    vector vl(N + 1);
    vector vo(N + 1);
    for (int i = 1; i <= N; i++) {<br />         cin >> vl[i] >> vo[i];
    }
    vector > dp(N + 1, vector(M + 1, 0));
    for (int i = 1; i <= N; i++) {<br />         for (int j = 0; j <= M; j++) {<br />             if (vo[i] <= j) {<br />                 dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - vo[i]] + vl[i]);
            } else {
                dp[i][j] = dp[i - 1][j];
            }
        }
    }
    int max_vl = dp[N][M];
    cout << max_vl << endl;<br />     vector s;
    int r = M;
    for (int i = N; i > 0 && max_vl > 0; i--) {
        if (max_vl != dp[i - 1][r]) {
            s.push_back(i);
            max_vl -= vl[i];
            r -= vo[i];
        }
    }
    cout << s.size();<br />     for (int i = s.size() - 1; i >= 0; i--) {
        cout << " " << s[i];<br />     }
    cout << endl;</p>

    return 0;
}

Các câu hỏi liên quan

0 phiếu
1 trả lời 919 lượt xem
An được mời tham gia trò chơi "Siêu thị may mắn" do đài truyền hình ZTV tổ chức. Siêu thi được đặt trong trường quay truyền hình có n ... ;c trong cách mua này. Ví dụ: SMARKET.INP SMARKET.OUT 12 3 4 1 6 2 2 1 2 0 2 0
đã hỏi 9 tháng 1, 2021 trong Tin học lớp 11 bởi thanhtrong Thạc sĩ (6.2k điểm)
0 phiếu
0 câu trả lời 716 lượt xem
Cho n đoạn trên trục số, đoạn thứ i là [Li, Ri]. Hãy chọn ra trong các đoạn kể trên một số ít nhất các đoạn để phủ hết đoạn [a, b] Dữ ... 4 7 10 9 11 8 11 3 1 4 6 8 1 200 1 4 2 5 4 5 6 45 6 7 5 7 100 200 50 99 -1
đã hỏi 4 tháng 1, 2021 trong Tin học lớp 11 bởi thanhtrong Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 922 lượt xem
Tờ báo CTT (Chuyên Toán-Tin) phát hành với số lượng lớn trên N tỉnh 1..N, N chẵn và N£1000 do đó phải in tại hai nhà in đặt ở tỉnh 1 và tỉnh 2. Hàng ... 6 8 1 2 5 1 4 8 1 6 7 2 3 6 3 4 5 3 6 2 4 5 3 5 6 2 1 4 5 2 3 6
đã hỏi 4 tháng 1, 2021 trong Tin học lớp 11 bởi thanhtrong Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 1.6k lượt xem
0 phiếu
2 câu trả lời 790 lượt xem
đã hỏi 28 tháng 7, 2021 trong Lịch sử lớp 9 bởi Babyshort Tiến sĩ (10.2k điểm)
0 phiếu
1 trả lời 1.8k lượt xem
Phân tích về + Phản ứng tâm lý + Cảm giác
đã hỏi 22 tháng 8, 2016 trong Ngữ văn lớp 8 bởi minhdang Học sinh (136 điểm)
+1 thích
1 trả lời 1.3k lượt xem
1. Truyện nào sau đây là truyện cổ tích? A. Sơn Tinh, Thuỷ Tinh B. Sọ Dừa C. Ếch ngồi đáy giếng D. Sự tích Hồ Gươm 2. Phư&#417 ... thần” là gì? A. Miêu tả B. Biểu cảm C. Tự sự D. Nghị luận
đã hỏi 12 tháng 1, 2022 trong Ngữ văn lớp 6 bởi trannhat900 Phó giáo sư (52.9k điểm)
0 phiếu
3 câu trả lời 3.8k lượt xem
hãy minh họa những ví dụ cụ thể về vai trò của lớp chim trong tự nhiên và đời sống con người
đã hỏi 18 tháng 3, 2017 trong Tư vấn điểm thi - tuyển sinh bởi Trần Lê Bảo Ngân
+2 phiếu
1 trả lời 1.0k lượt xem
Vắng thành phần chính nào?Việc vắng thành phần chính ấy thể hiện dụng ý nghệ thuật gì của tác giả?
đã hỏi 1 tháng 5, 2016 trong Ngữ văn lớp 6 bởi Đinh Văn Hưng
0 phiếu
1 trả lời 848 lượt xem
Có N người xếp hàng mua vé. Ta đánh số họ từ 1 đến N theo thứ tự đứng trong hàng. Thời gian phục vụ bán vé cho người thứ i là ti. ... qui ước ghi số 0) Ví dụ TICK.INP TICK.OUT 5 2 5 7 8 4 3 9 10 10 17 2 4
đã hỏi 2 tháng 2, 2021 trong Tin học lớp 9 bởi thanhtrong Thạc sĩ (6.2k điểm)

HOT 1 giờ qua

  1. trannhat900trannhat900

    52948 Điểm

  2. phamngoctienpy1987844phamngoctienpy1987844

    50728 Điểm

  3. vxh2k9850vxh2k9850

    35980 Điểm

  4. Nqoc_bakaNqoc_baka

    34614 Điểm

Phần thưởng hằng tháng
Hạng 1: 200.000 đồng
Hạng 2: 100.000 đồng
Hạng 3: 50.000 đồng
Hạng 4: 20.000 đồng
Phần thưởng bao gồm: mã giảm giá Shopee, Nhà Sách Phương Nam, thẻ cào cùng nhiều phần quà hấp dẫn khác sẽ dành cho những bạn tích cực nhất của tháng. Xem tại đây
Bảng xếp hạng cập nhật 30 phút một lần
...