1 条题解

  • 0
    @ 2025-8-24 21:15:18

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Amidst
    生若直木,不语斧凿。

    搬运于2025-08-24 21:15:17,当前版本为作者最后更新于2023-08-21 17:53:25,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路

    一道简单的数学问题。

    由于只能购买品牌 A 或品牌 B 的烤香肠,所以答案只有两种可能:

    • 可以购买品牌 A 香肠的袋数 ×\times 每袋的香肠数 ×\times 一根品牌 A 的香肠的美味程度,即 sum1=kb×a×csum1=\lfloor \frac{k}{b} \rfloor \times a \times c

    • 可以购买品牌 B 香肠的袋数 ×\times 每袋的香肠数 ×\times 一根品牌 B 香肠的美味程度,即 sum2=ke×d×fsum2=\lfloor \frac{k}{e} \rfloor \times d \times f

    取两者的最大值即可。

    由于在极端情况下 kb×a×c\frac {k} {b} \times a \times c 的值最大约为 101810^{18},超过了 int 范围,所以使用 long long

    代码

    #include <bits/stdc++.h>
    using namespace std;
    long long a,b,c,d,e,f,k;
    long long ans; 
    int main()
    {
    	scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e,&f,&k);
    	ans=max(floor(1.0*k/b)*a*c,floor(1.0*k/e)*d*f);
    	printf("%lld",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    8833
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者