题目中告诉了我们计算机的三个属性- -核心数量,闹钟频率和价格,我们要帮助 johnny 赚取最大利益,大家都知道 计算最大利益大概率与dp有关,所以,我们要用dp计算最大利益。
之后,我们要考虑一个问题- -如何将他们表示出来。当然,可以用集合表示当然可行,可数据范围太大了!用集合很容易爆,所以用数组是我们的不二之选
但随之又会引出一个问题–要用数组,我们就要把闹钟频率消掉。
大家肯定想到了题目中只讲到了他们的闹钟频率不少于f[j]
所以,我们可以使用排序算法!!
知周所众,这肯定是唉,我不告诉你
从大到小
知道了这点以后 这题就不难了
我们可以得出
买入时-- f[i]=f[i-c[i]]-v[i]; 计算时从大到小更新
卖出时-- f[i]=f[i+c[i]]+v[i]; 计算时从大到小更新
最后就是f[0~sum] !
所以 我们需要将f 数组的初始化更改成f[0]=0 ,其他全部为-INF;
最后输出f数组中的最大值,就可以了
唉,又水完一篇
有用吗
- 有
- 没有
- 你猜
0
投票人