f312. 1.人力分配

題目

有一個公司有$n$個員工,還有兩個工廠。如果工廠一與工廠二分別有$X_1$與$X_2$個員工,兩個工廠的收益$Y_1$,$Y_2$分別會是 $$ Y_1=A_1X_1^2+B_1X_1+C_1\ Y_2=A_2X_2^2+B_2X_2+C_2 $$ 請你考慮所有分配員工的方式,找出收益最大的組合,輸出最大收益。 注意,每個員工皆需分配到其中一個工廠。

輸入格式

第一行有三個整數$A_1,B_1,C_1$ 第二行有三個整數$A_2,B_2,C_2$ 第三行有一個正整數($1<=n<=100$)

輸出格式

輸出最大收益

解題方向

暴力破解法。x1跟x2的關係會是x2=n-x1,用for迴圈把x1或x2從1代到n找最大值。

參考程式碼

[AC]{.green} (4ms, 336KB)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
//ZeroJudge f312
#include <bits/stdc++.h>

using namespace std;

int main(){	   
  int A1,B1,C1,A2,B2,C2,n,ans=-2147483648;
  cin>>A1>>B1>>C1;
  cin>>A2>>B2>>C2;
  cin>>n;

  for(int x1=0;x1<=n;x1++){
    int x2=n-x1;
    int y1=A1*x1*x1+B1*x1+C1;
    int y2=A2*x2*x2+B2*x2+C2;
    ans=max(ans,y1+y2);
  }

  cout<<ans;
  return 0;
}
Never Too Late To Start
使用 Hugo 建立
主題 StackJimmy 設計