- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
最近我遇到了this IARCS 网站中的问题。
我解决这个问题的方法就像 Ramu 在给定的一天必须进行交易或什么都不做,并且由于他只能保留 1 头水牛,如果他有 1 头,他必须出售,如果没有,则必须购买。如果我可以计算出所有可能的组合,我可以很容易地确定他的最高利润。但我的代码似乎不起作用,它提供的输出比预期的要高一点,有时还会卡在更大的测试用例中,在尝试了 3 天后,有人能指导我走正确的道路吗?
这是我的代码:
#include <iostream>
int bestTrade(int arr[], int size, bool toTrade, int visits, int day) {
if (day < size - 1) {
day = day + 1;
if (visits > 0) {
if (visits % 2 == 0) {
int visitsT = visits - 1;
int trade = bestTrade(arr, size, true, visitsT, day) - arr[day];
int nothing = bestTrade(arr, size, false, visits, day);
if (nothing > trade) {
return nothing;
} else {
return trade;
}
} else {
int visitsT = visits - 1;
int trade = bestTrade(arr, size, true, visitsT, day) + arr[day];
int nothing = bestTrade(arr, size, false, visits, day);
if (nothing > trade) {
return nothing;
} else {
return trade;
}
}
} else {
return 0;
}
} else {
return 0;
}
}
int main(int argc, char const* argv[]) {
int n, k;
std::cin >> n >> k;
int market[n];
for (int i = 0; i < n; i++) {
std::cin >> market[i];
}
k = (k / 2) * 2;
int maxProfitT = bestTrade(market, n, true, k--, 0);
int maxProfitN = bestTrade(market, n, false, k, 0);
if (maxProfitN > maxProfitT) {
std::cout << maxProfitN << std::endl;
} else {
std::cout << maxProfitT << std::endl;
}
return 0;
}
最佳答案
对于与 dynamic programming
有关的任何问题,这样想:
如果你知道最多k
的最大利润交易直到(i-1)th
一天,你能算出最多k
的最大利润吗?交易直到ith
天??
想想……答案是Yes
!!!!
比如说,最大利润最多k
交易直到(i-1)th
天是best(k,i-1)
.你需要找出best(k,i)
对于任何 i<n
.
如果您选择不在 i-th
上进行任何交易天,所以best(k,i)
与 best(k,i-1)
相同.如果你确实想进行交易,那么best(k,i)
= max(value[i] - value[j] + best[k-1][j]), j 从 0 到 i`
所以,最后 DP
公式结果为:
best[k][i] = max(best[k][i-1], max(value[i] - value[j] + best[k-1][j]), j<i
)
一个工作代码,你可以看看here
希望对您有所帮助!!!
关于c++ - 计算最大利润的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888562/
我有这个脚本计算利润 步骤: barangbeli = 哈萨特/直径 p1 = 巴朗贝利 * 10 p2 = 教授/100 结果 = barangbeli + 利润; 谢谢 CREATE VIEW t
HTML CSS .col-3 { width:31.5%; float:left; margin-right:1.8%; margin-bott
根据交易时的成本价计算利润时出现问题 下面是场景的重现 create table price_history(id int,dated date,product_id int,cost_price i
当 shiny-server 看到 .Rmd 文件而不是 ui.R 和 server.R 时,有什么方法可以减少右边距和左边距吗?正如您在下面看到的,将近一半的窗口是右边距和左边距。有没有办法修改内部
这个问题在这里已经有了答案: Strange constraints behaviour on iPad (1 个回答) 关闭 7 年前。 我在不同的应用程序中有一段时间遇到这个问题,但我不知道到底
这真的很奇怪。我似乎根本无法通过 css 影响这张图片。尝试专门为图像添加一个类,并编写 css 以仅影响图像,但不影响 zip。它不会让步。唯一让它移动的是设置负值。实际图像上的边距,它只向上移动了
我是一名优秀的程序员,十分优秀!