Skip to content

Blog Công Nghệ

MENUMENU
  • Trang chủ
  • Giới Thiệu
  • Lập Trình
    • Lập Trình Website
      • Laravel
        • Phân Tích Dự Án
      • PHP
      • SQL
      • HTML
      • CSS
      • Javascipt
      • My Project
      • Wordpress
    • Luyện Skill
    • Lập trình winform
    • CSDL
    • Lập Trình Android
    • Trí tuệ nhân tạo
    • Khai Khoáng Dữ Liệu
    • Arduino
    • Khác
    • Đồ án
  • Phần Mềm
    • Powerpoint
    • Tool
  • Cuộc sống và Giải trí
    • Hợp âm
    • web5ngay - youtube
    • Công Giáo
    • Kỹ Năng Sống
    • Street Workout
  • Danh sách bài viết
  • Guide line
    • Guild line phỏng vấn
    • Guide lines Laravel
    • Guide line Module Frontend
  • Tóm tắt sách
  • Fanpage

Blog Công Nghệ

Nơi chia sẻ kiến thức

Ntucoder – BANHCHUNG – Nấu bánh chưng

11 Tháng Tám, 2021 by admin
Lượt xem: 317

Contents

  • 1. Nội dung đề bài
  • 2. Hiểu đề bài như thế nào?
  • 3. Cách tui giải và code
  • 4. Các testcase cho đề bài

1. Nội dung đề bài

  • Dữ liệu vào: standard input
  • Dữ liệu ra: standard output
  • Giới hạn thời gian: 1.0 giây
  • Giới hạn bộ nhớ: 128 megabyte

Khác với năm ngoái, năm nay Quý đã lớn nên có thể phụ gia đình gói bánh chưng, vì vậy số lượng bánh chưng năm nay nhiều đến nỗi không thể bỏ hết vào nồi nấu bánh chưng trong một lần được mà phải chia làm nhiều đợt. Nồi bánh chưng nhà Quý có thể tích N (1 <= N <= 50000), nghĩa là có thể chứa tối đa N khối lập phương kích thức 1x1x1 đơn vị. Quý có M (1 <= M <= 5000) cái bánh chưng, bánh chưng thứ i (1 <= i <= M) có thể tích là Vi, tức là bánh chưng này được ghép từ Vi khối lập phương kích thước 1x1x1 đơn vị. Quý muốn biết trong đợt nấu bánh đầu tiên thì có thể xếp tối đa bao nhiêu cái bánh chưng vào nồi. Bạn hãy giúp Quý nhé!

Input

Dòng đầu chứa hai số N, M lần lượt là thể tích nồi bánh chưng và số bánh chưng

M dòng sau, mỗi dòng Vi là thể tích của bánh chưng thứ i

Output

Một dòng duy nhất chứa tổng kích thước bánh chưng tối đa có thể xếp vào nồi trong đợt nấu bánh đầu tiên.

2. Hiểu đề bài như thế nào?

Đề bài kêu chúng ta hãy tìm thể tích lớn nhất từ số lượng bánh chưng đã cho có thể bỏ vào nồi có thể tích cho trước.

3. Cách tui giải và code

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int v, n, arr[10000], f[60000] = {0};
    
    /*
    * v: the tich noi banh chung
    * n: so luong banh chung
    * arr: mang luu the tich cac banh chung
    * f: mang danh dau
    */
    
    cin >> v >> n;
    for(int i = 1; i <= n; ++i) {
        cin >> arr[i];
    }
    
    
    f[0] = 1;
    for(int i = 1; i <= n; ++i) {
        for(int j = v; j >= arr[i]; --j) {
            if(f[j - arr[i]]){
                f[j] = 1;
            }
        }
    }   
    
    for(int i = v; i >= 0; --i) {
        if(f[i]) {
            cout << i;
            break;
        }
    }
}

Ví dụ:

//input
7 3
2
6
5
//output
7

Như vậy v=7, n=3, arr= {2,6,5}
f là mảng đánh dấu

  • Ban đầu:
    index 0 1 2 3 4 5 6 7
    value 1 0 0 0 0 0 0 0
  • 7 – 2 = 5, 6 – 2 = 4, 5 – 2 =3, 4 – 2 = 2, 3 – 2 = 1:
    Các index 5,4,3,2,1 đều có giá trị 0 nên giá trị index số trừ sẽ giữ nguyên.
    index 0 1 2 3 4 5 6 7
    value 1 0 0 0 0 0 0 0
  • 2 – 2 =0:
    Còn index 0 có giá trị 1 nên giá trị index của số bị trừ (2) sẽ được thay bằng 1.
    index 0 1 2 3 4 5 6 7
    value 1 0 1 0 0 0 0 0
  • Tương tự 7 – 6 = 1 và 6 – 6 = 0
    index 0 có giá trị 1 nên giá trị index của số bị trừ (6) sẽ được thay bằng 1.
    index 0 1 2 3 4 5 6 7
    value 1 0 1 0 0 0 1 0
  • 7 – 5 = 2   index(2) = 1     => index(7) = 1
    6 – 5 = 1  index(1) = 0     => giữ nguyên
    5 – 5 = 0   index(0) = 1     => index(5) = 1
    index 0 1 2 3 4 5 6 7
    value 1 0 1 0 0 1 1 1

=> đáp án cuối cùng là index có giá trị 1 cao nhất => index(7) do đó thể tích lớn nhất có thể bỏ vào nồi là 7.

4. Các testcase cho đề bài

banhchungTải xuống

Related posts:

  1. Tạo chứng chỉ SSL (https) cho localhost XAMPP
  2. ntucoder – VERSUSGAME – Trò chơi đối kháng
  3. Ntucoder – ROBOT5 – Robot đi tuần
  4. Ntucoder – GAO – Siêu nhân GAO

Post navigation

Previous Post:

Thánh Kinh Tân Ước – Phó Hằng Cơ

Next Post:

Triết Lý Sống

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Ẩn sidebar

Tìm kiếm

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Blog Công Nghệ

Bài viết mới

  • Master typescript
  • Sendmail trong Laravel sử dụng dịch vụ SES, SQS của Amazon
  • Install SSL in Nginx Ubuntu
  • Docker study
  • Bảo vệ: Hướng dẫn code bot Telegram easy game

Lượng truy cập

0077921
Visit Today : 20
Visit Yesterday : 154
This Month : 4192
Who's Online : 2
© 2025 Blog Công Nghệ | WordPress Theme by Superbthemes