AT1917 みんなでワイワイみかん 题解
思路:
- 分情况讨论:
-
买橘子时单个买需要的钱比配套买便宜或相等,这时直接单个买就可以,代码实现为
a*k。 -
买橘子时单个买需要的钱比配套买贵,又有两种情况:
- 配套买最多,再单个买,代码实现为
b*(k/l)+a*(k%l)。- 剩下不能配套买全部,但可以再买一套,代码实现为
(k/l+1)*b。- 取最小值即可。
注意:
-
AT 的题需要换行!
-
数据范围比较大,会炸
int,需要开long long!
代码:
#include<bits/stdc++.h>
using namespace std;
long long k,a,l,b,ans;
int main()
{
cin>>a>>b>>k>>l;
if(a*l<=b) ans=a*k;//公式
else ans=min((k/l+1)*b,(b*(k/l)+a*(k%l)));//公式
cout<<ans<<endl;
return 0;
}
以下是博客签名,正文无关
本文来自博客园,作者:Wy_x,转载请在文首注明原文链接:https://www.cnblogs.com/Wy-x/articles/18704607
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC-BY-NC-SA 4.0 协议)进行许可。

浙公网安备 33010602011771号