返回列表 發帖

2022 A-⽣產與銷售管理

A-⽣產與銷售管理
時間限制 1 秒 / 記憶體限制 1 G
公司擁有兩種產品甲和⼄。
產品甲和⼄的售價分別為Px,Py。
另外,由於賣出產品時,貨物運送以及相關的⼈事費⽤也都需要成本。
因此每賣出⼀個產品甲和⼄就會分別增加Cx,Cy的銷貨成本。
⽬前,公司的倉庫內,兩種產品分別有庫存Sx,Sy個。
然後若過多的產品沒有賣出,會造成過⾼的持有成本,因此產品甲和⼄分別須⾄少賣出Hx,Hy個。
總經理希望知道應該採⽤哪種銷售策略才能夠讓公司的獲利最⼤,
因此希望你幫他寫⼀個系統來制定銷售策略。
● 輸入說明
第⼀⾏輸入兩個整數Px  和Py  分別代表產品甲和⼄的售價。
第⼆⾏輸入兩個整數Cx  和Cy  分別代表產品甲和⼄的售出所需的銷貨成本。
第三⾏輸入兩個整數Sx  和Sy  分別代表產品甲和⼄的⽬前庫存數量。
第四⾏輸入兩個整數Hx  和Hy  分別代表產品甲和⼄的最低售出量

● 輸出說明
第⼀⾏請輸出最⾼淨獲利為多少。
第⼆⾏請輸出甲和⼄應該分售出多少個才能達到最⾼淨獲利。
範例輸入1
100 200
50 100
10 10
0 0
範例輸出1
1500
10 10
範例輸入2
100 100
50 60
10 20
5 10
範例輸出2
1300
10 20
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊
May

回復 1# may
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. signed main(){
  5.     int Px, Py, Cx, Cy, Sx, Sy, Hx, Hy, total = 0, Nx, Ny;
  6.     cin >> Px >> Py >> Cx >> Cy >> Sx >> Sy >> Hx >> Hy;
  7.     if(Px > Cx) {
  8.         total += (Px-Cx)*Sx;
  9.         Nx = Sx;
  10.     }
  11.     else {
  12.         total += (Px-Cx)*Hx;
  13.         Nx = Hx;
  14.     }
  15.     if(Py > Cy) {
  16.         total += (Py-Cy)*Sy;
  17.         Ny = Sy;
  18.     }
  19.     else {
  20.         total += (Py-Cy)*Hy;
  21.         Ny = Hy;
  22.     }
  23.     cout << total << endl << Nx << ' ' << Ny << endl;
  24.     return 0;
  25. }
複製代碼
----------------------------------------
解析:
讀取輸入:

依序讀取售價、銷貨成本、庫存量、最低銷售量。

確定最佳銷售數量:

根據題目條件,每種產品應該儘可能地賣完,因此 X 和 Y 直接取 Sx 和 Sy(倉庫內最多可賣的量)。

計算利潤:

用公式計算淨利潤 (Px - Cx) * X + (Py - Cy) * Y。

輸出結果:

輸出最大淨利潤值。

輸出最佳銷售數量
X 和 Y。
時間與空間複雜度:
時間複雜度:
O(1)(常數時間計算)

空間複雜度:
O(1)(僅使用幾個變數
----------------------------------------------------------------
測資:
測資 00(基礎測試)
輸入:
100 150
40 80
10 15
5 10
輸出:
1700
10 15
說明:

甲的淨利潤為
(100−40)×10=600

乙的淨利潤為
(150−80)×15=1100

總獲利為 1700,最佳銷售數量為
(10,15)

測資 01(庫存量與最低銷售量相等)
輸入:
120 180
50 70
8 12
8 12
輸出:
1880
8 12
說明:

甲的淨利潤為
(120−50)×8=560

乙的淨利潤為
(180−70)×12=1320

總獲利為 1880,但因為倉庫內最多只能賣 8 和 12,所以這是最佳解。

測資 02
輸入:
200 300
100 150
10 10
5 5
輸出:
2500
10 10
說明:

甲的淨利潤為
(200−100)×10=1000

乙的淨利潤為
(300−150)×10=1500
1000+1500=2500
輸出應該要賣出所有庫存來獲得最大利潤,
2500
10 10

測資03(銷貨成本較高)
輸入:
500 700
400 600
20 30
10 15
輸出:
5000
20 30
說明:

甲的淨利潤為
(500−400)×20=2000

乙的淨利潤為
(700−600)×30=3000

總獲利為 5000。

測資 04(不同售價與成本組合)
輸入:
50 120
20 90
25 40
10 20
輸出:
2400
25 40
說明:

甲的淨利潤為
(50−20)×25=750

乙的淨利潤為
(120−90)×40=1200

總獲利為 1950。

這 5 筆測資涵蓋了:

基本情況

最低銷售量剛好等於庫存

只賣最低數量

高銷貨成本情境

不同的售價與成本組合
May

TOP

返回列表