P9761 [ROIR 2021 Day 1] 两台机器 题解
解题思路
虽然两台机器没法同时位于启动过程中,但是可以同时运行,也就是说,我们可以先启动第一台或者先启动第二台。那么,我们可以分别计算出先启动第一台和启动第二台能够生产的最多的材料,然后取一个最大值。
那么,第一台先启动能够生产的最大材料数量为:$$\max(k-a,0)\times x+\max(k-a-b,0)\times y$$ 第二台先启动能够生产的最大材料数量为:$$\max(k-b,0)+\max(k-a-b,0)\times y$$ 最终的答案为:$$\max(\max(k-a,0)\times x+\max(k-a-b,0)\times y,\max(k-b,0)+\max(k-a-b,0)\times y)$$
AC 代码
#include<stdio.h>
#define int long long
template<typename T>
inline T Max(T a,T b){return a>b?a:b;}
int k,a,x,b,y,zero=0;
signed main(){
scanf("%lld%lld%lld%lld%lld",&k,&a,&x,&b,&y);
int ans=Max(Max(k-a,zero)*x+Max(k-a-b,zero)*y,Max(k-b,zero)*y+Max(k-a-b,zero)*x);
printf("%lld",ans);
}

浙公网安备 33010602011771号