GESP认证C++编程真题解析 | B4445 [GESP202512 一级] 小杨的爱心快递

欢迎大家订阅我的专栏算法题解:C++与Python实现
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[B4445 GESP202512 一级] 小杨的爱心快递 - 洛谷

【题目描述】

小杨是“爱心社区”的小志愿者,每周他都会帮助邻居们寄送捐赠给山区小学的文具和书籍。快递公司为了支持公益行动,制定了特殊的运费规则,鼓励大家合理包装:

假设快递的体积为 $V$,重量为 $G$。

  • 按体积计算:运费按体积计算,公式是 $0.5 \times V$ 元。
  • 按重量计算:为了鼓励减轻包裹重量,规则是:当重量小于 300 克,即 $G < 300$ 时,运费为 $M$ 元;当重量达到或超过 300 克,即 $G \geq 300$ 时,运费为 $N$ 元。

快递公司的叔叔说:“我们应该选择最公平合理的计费方式。”

所以,最终的运费会取按体积计算和按重量计算这两种方式中价格较低的那一个,这样对寄件人最公道。

【输入】

四行,每行一个一位小数的浮点数,分别代表,快递的体积 $V$,快递的重量 $G$,第一档重量运费 $M$,第二档重量运费 $N$。

【输出】

一行一个一位小数,代表实际快递运费。

【输入样例】

100.4
300.2
60.6
70.5

【输出样例】

50.2

【算法标签】

《洛谷 B4445 小杨的爱心快递》 #分支结构# #GESP# #2025#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

double V, G, M, N;  // 四个输入参数
int main()
{
    // 输入四个参数
    cin >> V >> G >> M >> N;
    
    // 计算可用的时间t
    double t = min(V * 0.5, (G < 300 ? M : N));
    
    // 输出结果,保留一位小数
    printf("%.1f\n", t);
    
    return 0;
}

【运行结果】

100.4
300.2
60.6
70.5
50.2
posted @ 2026-01-14 13:51  热爱编程的通信人  阅读(3)  评论(0)    收藏  举报