我们给出了5个整数N,A,B,X和ÿ。目标是通过检查[1到N]范围内的数字之间是否存在来最大化利润。
一个数字是由A整除,则通过利润增长X。
一个数字是由乙整除然后通过利润增长ÿ。
对于范围内的特定数字,只能添加一次利润。
让我们通过示例来理解。
输入-N = 4,A = 2,B = 3,X = 2,Y = 3
产出−最高利润为− 7
说明-
2,4可被A(2)整除。利润从0增加到2,然后从2增加到4(按X = 2)
3被B(3)整除。利润从4增加到7。(按Y = 3)
输入-N = 5,A = 2,B = 4,X = 1,Y = 3
产出-最高利润为:4
说明-
2,4可被A(2)整除。
4也可被B(4)整除。
对于2,利润从0增加到1(乘X)。对于4,我们选择按B进行除数。因此,随着Y的增加,利润增加Y而不是X。因此它从1上升到4(按Y = 3)。
我们有整数N,A,B,X,Y。
函数maximumProfit(int n,int a,int b,int x,int y)计算利润并返回值。它以所有变量为参数并返回最大利润。
可变利润将有一定数量的利润,最初为0。
从1到n,使用for循环检查i被a和b的除数
如果i被a和b整除,则将利润增加x或y中的较大者。
否则,如果我只能被我整除,则将利润增加x
否则,如果我只能被b整除,则将y的利润增加
最后,返回值以利润形式出现。
#include <bits/stdc++.h> using namespace std; //函数返回最大利润 int maximizeProfit(int n, int a, int b, int x, int y){ int profit=0; for(int i=1;i<=n;i++){ if(i%a==0 && i%b==0){ int maxx=x>=y?x:y; profit+=maxx; } else if(i%a==0){ profit+=x; } else if(i%b==0){ profit+=y; } } return profit; } int main(){ int N = 6, A = 2, B =4, X = 6, Y = 3; cout <<"Maximized profit is: "<<maximizeProfit(N,A,B,X,Y); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Maximized profit is: 2
我在读“算法导论”。在最大子数组问题(第4章)中,作者提出不能仅仅通过求子数组的最大值和最小值来计算股票买卖的最大利润。作者通过计算所有可能的买进和卖出日期的组合来谈到替代方案,例如蛮力,这将需要0(n^2)个时间。另一种选择是寻找价格日变化数组的最大子数组。 然而,我编写了一个算法,它将花费0(n)个时间,并找到最大利润。这是在0(n)对0(nlogn)的最大子数组问题。但我知道作者不会错的。我
题目链接 Leetcode:121. Best Time to Buy and Sell Stock 题目描述 可以有一次买入和一次卖出,买入必须在前。求最大收益。 解题思路 使用贪心策略,假设第 i 轮进行卖出操作,买入操作价格应该在 i 之前并且价格最低。 // java public int maxProfit(int[] prices) { if (prices == null |
问题内容: 我有一个带有某些样式的简单html页面,但我不明白为什么会增加一些顶部边距? 来源如下: 如果我添加“ margin-top:0;” 到了空间已经消失了……但是直到我明白为什么我才感到不高兴。 问题答案: 上的空白来自浏览器添加到元素的默认样式。例如,如果您打开的并检查元素,您将看到这样的样式。该用户代理样式表是指浏览器默认样式。保证金变成16px为浏览器有一个默认。 由于浏览器之间的
问题内容: 我与几个工作被设置为s ,并有一组和。在HTML中,如果在每行之后都有一个换行符,则会在div的右侧和底部自动添加5px的边距。 例: 是否有我忽略的属性可以让我重置自动保证金? 更新资料 从我发现的结果来看,没有任何方法可以消除空白…除非您将所有内容都放在同一行,或者添加注释以注释掉换行符。例: 这不是最佳的解决方案,但是如果您有多行代码,则仍然更易于阅读。 问题答案: div被视为
本文向大家介绍可被C整除的最大正整数,在C ++中范围为[A,B],包括了可被C整除的最大正整数,在C ++中范围为[A,B]的使用技巧和注意事项,需要的朋友参考一下 在这里,我们将看到一个有趣的问题。让我们考虑我们有三个整数A,B和C。我们必须找到一个最小整数X,使得X mod C = 0,并且X不在[A,B]范围内。如果A,B和C的值分别为5、10和4,那么X的值为4。我们必须按照以下步骤获得
假设一个赌场(C)有一个只涉及一个玩家和一个庄家的游戏。这个游戏是用m n张牌玩的,m张牌被标记为赢牌,n张牌被标记为输牌。 游戏规则/信息: > 玩家知道每个阶段的获胜牌“m”和输牌“n”的数量。 玩家开始玩“X”数量,直到所有牌都抽出。 庄家非常非常聪明,有权根据玩家在牌桌上的赌注抽取一张获胜的牌或一张失败的牌。 每次抽奖都会减少任何一个类别的牌的数量,即如果抽到中奖牌,则中奖牌的数量变为“m