Trang chủ Tin Học Lớp 8 Bài 4: (4 điểm) Thuê xe Một trung tâm vận...

Bài 4: (4 điểm) Thuê xe Một trung tâm vận chuyển hàng hóa cần đưa N hộp quà có kích thước bằng nhau từ Thành phố Hồ Chí Minh về Nam Định bằng 2 loại xe là loại

Câu hỏi :

Bài 4: (4 điểm) Thuê xe Một trung tâm vận chuyển hàng hóa cần đưa N hộp quà có kích thước bằng nhau từ Thành phố Hồ Chí Minh về Nam Định bằng 2 loại xe là loại 1 và loại 2. Mỗi xe loại 1 chở được không quá 50 hộp quà và giá thuê là a, mỗi xe loại 2 chở không quá 4 hộp quà và và giá thuê là b (a > b). Tất cả phải khởi hành đồng thời từ một địa điểm. Yêu cầu: cho các số nguyên dương N, a và b (1 <=N<=2x107, 1 <=b <a<=30). Hãy xác định số xe loại 1 và số xe loại 2 cần thuê để tổng chi phí là nhỏ nhất. Dữ liệu vào từ tệp THUEXE.INP gồm một dòng chứa 3 số nguyên N, a và b mỗi số cách nhau bởi một dấu cách. Kết quả: ghi ra tệp THUEXE.OUT chứa 1 dòng duy nhất gồm 2 số nguyên số xe loại 1 và số xe loại 2 cần thuê, mỗi số cách nhau bởi một dấu cách. c++

Lời giải 1 :

`\color{red}{\text{@hoangduy67}}`

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,b;
    cin>>n>>a>>b;
    int x=n/4;
    int y=n%4;
    int ans=1e9;
    for(int i=0;i<=x;i++){
        int j=(n-4*i)/50;
        if((n-4*i)%50!=0) j++;
        ans=min(ans,i*b+j*a);
    }
    cout<<0<<" "<<(n-4*ans)/50+((n-4*ans)%50!=0);
    return 0;
}

Lời giải 2 :

Ý tưởng: Bài này ta sẽ nhân a lên 2 và b lên 25 để so sánh giá của 2 loại xe khi chở 100 hộp quà. với trường hợp a*2<=b*25 thì ta sẽ tăng biến đếm xe a lên n/50(tăng tối đa xe loại a vì đây là phương án tối ưu nhất) sau đó lấy số hộp quà thừa ra và chia vào xe 2 (/4) nếu mà chia 4 vẫn còn dư thì tăng biến đếm xe b lên 1 nữa và so sánh nếu nếu biến đếm xe b nhân b<a có nghĩa là số tiền thêu các xe b bé hơn 1 xe a thì ta lấy biến đếm b còn ngược lại thì lượng xe b vẫn là 0 và tăng biến xe a lên. Trường hợp a*2>b*25 thì ta lấy tối đa xe b luôn vì b luôn nhỏ hơn là xong.
Code mẫu:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
   ll n,a,b,da=0,db=0;
   cin>>n>>a>>b;
   if (a*2<=b*25)
   {
       da+=(n/50);
       ll du=n%50;
       ll nhom4=du/4;
       if (du%4!=0)
        nhom4++;
       if (nhom4*b<a)
        db+=nhom4;
       else
        da++;
   }
   else
   {
       db+=(n/4);
       if (n%4!=0)
        db++;
   }
   cout<<da<<' '<<db;
}
________________________________________________
Hãy hiểu và làm lại chứ đừng chỉ lấy code

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK