DP的优化

计划安排

https://ac.nowcoder.com/acm/contest/30466/I

alt

O(n^3)思路: 先求出t和c的前缀和sumt, sumc dp[i][j]表示前i个任务分成j批的最小代价,这样我们算的可以知道这是第几批,同时枚举第j批和第j-1批的分界点找到最小代价的。状态转移方程: dp[i][j] = min{dp[k][j-1] + (sj+sumt[i])(sumc[i]-sum[k])}; 0 <= k < i 前k个任务分了j-1批,k+1 ~ i分成了一批。 时间复杂度较高。 O(n^2)思路: 还是先求前缀和 dp[i]表示前i个任务分成若干批的最小代价,与前一种方法相比,我们不关心这是第几批,在每次分批的时候把对后面所有任务造成的影响加上即可,影响为s*(sumc[n]-sum[j]) j为分割点。状态转移方程: dp[i] = min{dp[j] + sumt[i](sumc[i]-sumc[j]) + s(sumc[n]-sumc[j])} 0 <= j < i;

alt

全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务