1 条题解

  • 0
    @ 2025-8-24 23:00:28

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar DFs_YYDS
    明年不拿绿勾就再也别换个签了 || 擅长的是线下物理单杀而不是对线||上帝给我关了一扇门,但是我把门炸掉了 || 毁灭你,与你何关?

    搬运于2025-08-24 23:00:28,当前版本为作者最后更新于2024-07-07 16:11:19,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    挺简单的一道贪心题,评红吧。

    题目大意

    给你 nn 天坐的火车(不应该是地铁吗)次数,每天可以买单程票,坐一次付 xx 元;也可以直接买单日票,一天只需要付 yy 元即可。

    具体思路

    对于每天的行程,比较买单程票的价钱和单日票的价钱,即比较 ai×xa_i \times xyy,选择较小的,用 ansans 记录下来,最后输出即可。

    完整代码

    #include<bits/stdc++.h>//万能头文件。 
    using namespace std;
    int main(){//主函数部分。 
        int n/*天数n*/,x/*单程票的价钱*/,y/*单日票的价钱*/,ans=0/*答案*/;
        cin>>n>>x>>y;//读入。 
        for(int i=0;i<n;i++){//循环天数。 
        	int a;//坐火车的次数a。 
        	cin>>a;//读入a。 
        	ans+=min/*min函数,用于求两项中的最小值*/(x*a/*单程票的价钱*/,y/*单日票的价钱*/);
        	/*
        	上面的一行代码等价于:
    		if(x*a<y)ans+=x*a;
    		else ans+=y;
    		和:
    		ans+=x*a<y?x*a:y;
    		这3段代码的效果是一样的。 
        	*/
        }
        cout<<ans;//输出结果ans。 
        return 0;
    }
    
    • 1

    信息

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