摘要:
DescriptionThe cow bicycling team consists of N (1 = d, 不管第 i 头牛怎么跑, 只要它跑了 d 圈, i+1 头牛就耗费了 d 的能量.dp[i+1][d][d] 是对第 i+1 头牛进行初始化, 在代码中也可以看出, 第 i 头牛更新第 i+1 头牛的dp[][][]总结:1. 每头牛, 自己跑的时候使用了一次 dp, 牛与牛之间又使用了一次 dp2. 递推关系仅建立在相邻的两头牛之间, 后面一头牛继承前面那头牛的最小时间代码:#include using namespace std;const int INF = 0X3F3F3F3 阅读全文
摘要:
思路:1. 算法导论讲 divide and conquer 时, 讲到过这个例子. 书中的做法是先让 price 数组减去一个值, 然后求解最大连续子数组的和. 分治算法的复杂度为 o(nlogn)2. 剑指 offer 来给出最大连续子数组和的动态规划做法, 时间复杂度缩小到 o(n)3. 此题不必转化为最大连续子数组和问题, 可以直接使用动态规划解法(我不知道如何转化). 假设 dp[i] 表示第 i 天把股票卖出获得的最大收益, 那么可以根据 price[i] 和 price[i-1] 之间的关系可以推出 dp[i] 与 dp[i-1] 的关系if(prices[i] > pri 阅读全文