题解:P13554 【MX-X15-T1】奶龙龙

本蒟蒻的第一篇题解。

题目大意

我们要买至少 \(a\) 个玩偶,每个玩偶原价需要 \(x\) 元。但是如果买够了 \(y\) 个玩偶,每个玩偶单价就可以降到 \(z\) 元。求买到至少 \(a\) 个玩偶所要花的最少钱数。

题目分析

注意:这道题目其实有一个坑点。如果 \(a\) 不足 \(y\) 个,直接按原价买 \(a\) 个并不一定是最优解。因为题目描述是买至少 \(a\) 个玩偶。因此,我们可以尝试买 \(y\) 个玩偶。如果降价之后价格更低就输出降价后的最优解;否则输出直接按照原价购买的价格。

如果是 \(a\) 大于等于 \(y\) 的情况下,直接购买 \(a\) 个即可。因为在购买 \(a\) 个的情况下也可以享受优惠。

AC 代码

记录

#include<bits/stdc++.h>//记得开long long哦!
using namespace std;
int x,y,z,a,tmp;
int main()
{
    scanf("%d%d%d%d",&x,&y,&z,&a);
    if(a>y) printf("%lld",a*1ll*z);//假如a大于y
    else if(a*1ll*x>y*1ll*z) printf("%lld",y*1ll*z);//a<y但是购买y个更划算
    else printf("%lld",a*1ll*x);//直接购买a个更划算
    return 0;
}
posted @ 2025-11-15 11:19  linruicong  阅读(3)  评论(0)    收藏  举报