【错题集-编程题】游游的水果大礼包(枚举)

简介: 【错题集-编程题】游游的水果大礼包(枚举)

题目对应链接:登录—专业IT笔试面试备考平台_牛客网


一、分析题目

这里虽然很容易想到贪⼼,但是很不幸,贪⼼是错的。

正确的解法应该是枚举所有的情况(遇到这种一元二次方程,并给出其中一个值的取值范围和另一个值与之的关系,这种类型的题目就可以用枚举来做)。


二、代码

//值得学习的代码
#include <iostream>
using namespace std;
 
long long n, m, a, b;
 
int main()
{
    cin >> n >> m >> a >> b;
 
    long long ret = 0;
    for(long long x = 0; x <= min(n / 2, m); x++) // 枚举 1 号礼包的个数
    {
        long long y = min(n - x * 2, (m - x) / 2); // 计算 2 号礼包的个数
        ret = max(ret, a * x + b * y);
    }
 
    cout << ret << endl;
 
    return 0;
}

三、反思与改进

这道题目的第一想法就是贪心,想着通过比较 a 和 b 的大小来判断先一直选哪一个,没有想到这题贪心是错的。其实举一个简单的反例即可(n=2,m=100,a=3,b=2)这种情况下,贪心就没法正确得出结果了。


相关文章
洛谷P2141珠心算测验 (枚举&&暴力解法)
洛谷P2141珠心算测验 (枚举&&暴力解法)
130 0
|
8月前
【编程题-错题集】分组(枚举 + 二分)
【编程题-错题集】分组(枚举 + 二分)
|
8月前
7-10 sdut-C语言实验-简单枚举类型——植物与颜色
7-10 sdut-C语言实验-简单枚举类型——植物与颜色
32 0
|
8月前
|
存储
位运算之妙用:识别独特数字(寻找单身狗)
位运算之妙用:识别独特数字(寻找单身狗)
70 0
|
8月前
|
机器学习/深度学习 C语言
c语言编程练习题:7-55 查询水果价格
c语言编程练习题:7-55 查询水果价格
239 0
|
算法 测试技术 C#
C++前缀和算法的应用:摘水果 原理源码测试用例
C++前缀和算法的应用:摘水果 原理源码测试用例
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
112 0
|
存储 算法 C语言
【创作赢红包】C语言实现建立手机通讯录(链式结构)
【创作赢红包】C语言实现建立手机通讯录(链式结构)
123 0
|
存储 Java 数据挖掘
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)!
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)
【蓝桥杯省赛】冲刺练习题【枚举】倒计时【12】天-1
【蓝桥杯省赛】冲刺练习题【枚举】倒计时【12】天
154 0