金苹果岛上的代码挑战:最大化你的代码能力
金苹果岛上的代码挑战:最大化你的代码能力
题目描述
你是一位代码勇者,来到了传说中的金苹果岛。岛上有两种神奇的苹果:
- 红苹果: 随处可见,每个红苹果都能提升你的代码能力,但提升程度不一,有的甚至会降低你的能力!* 金苹果: 稀有而美味,每个金苹果都能使你的代码能力直接翻倍!
你的初始代码能力为 1。现在,苹果仙子热情地招待你,提供了 n 个红苹果和 m 个金苹果。你必须吃光所有的苹果,但你可以自由选择吃金苹果的时机。
挑战: 你需要找到一种吃苹果的最佳策略,使得你在离开金苹果岛时拥有最高的代码能力!
输入格式
第一行包含两个正整数 n (1 ≤ n ≤ 10^5) 和 m (0 ≤ m ≤ 10),分别表示红苹果和金苹果的数量。
第二行包含 n 个整数 _a_1, _a_2, ..., a_n (-10 ≤ a_i ≤ 10),表示每个红苹果对代码能力的影响。
输出格式
输出一个整数,表示你能获得的最高代码能力值。
样例
输入样例 1
6 21 -2 3 1 -6 5
输出样例 1
15
样例 1 解释
最佳策略是:
- 吃掉红苹果:1, -2, 3, 1,代码能力变为 4。2. 吃掉 2 个金苹果,代码能力变为 16。3. 吃掉剩余的红苹果:-6, 5,最终代码能力为 15。
提示
- 贪心策略: 金苹果的效果是翻倍,所以越早吃越好。 尝试先找到红苹果中提升能力最大的一个,在吃金苹果之前吃掉它。* 考虑负面影响: 一些红苹果可能会降低你的代码能力,你需要谨慎选择吃苹果的顺序。
子任务
- 子任务 1 (10%): a_i ≥ 0,所有红苹果都提升代码能力。* 子任务 2 (30%): m = 0,没有金苹果。* 子任务 3 (70%): m = 1,只有一个金苹果。* 子任务 4 (100%): n ≤ 10^5, m ≤ 10, |a_i| ≤ 10。
C++ 贪心算法代码示例cpp#include #include #include
using namespace std;
int main() { int n, m; cin >> n >> m; vector
原文地址: https://www.cveoy.top/t/topic/fM1l 著作权归作者所有。请勿转载和采集!