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

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

题目对应链接:登录—专业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珠心算测验 (枚举&&暴力解法)
|
4月前
【编程题-错题集】分组(枚举 + 二分)
【编程题-错题集】分组(枚举 + 二分)
|
算法 C语言
【零钱问题】C语言贪心算法分析(文末彩蛋)
【零钱问题】C语言贪心算法分析(文末彩蛋)
134 0
|
4月前
|
存储
位运算之妙用:识别独特数字(寻找单身狗)
位运算之妙用:识别独特数字(寻找单身狗)
41 0
|
4月前
|
机器学习/深度学习 C语言
c语言编程练习题:7-55 查询水果价格
c语言编程练习题:7-55 查询水果价格
107 0
|
11月前
|
人工智能 算法 测试技术
[蓝桥杯] 枚举、模拟和排列问题
[蓝桥杯] 枚举、模拟和排列问题
70 0
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
97 0
|
设计模式 Java 编译器
这5个集合方面的问题,你都能答对吗?
这5个集合方面的问题,你都能答对吗?
这5个集合方面的问题,你都能答对吗?
|
算法 索引 Python
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
211 0
【python】之哥德巴赫猜想(递归法)和教室排课(枚举法)
|
存储 Java 数据挖掘
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)!
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)