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

全部评论

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
king122:专业技能不要写这么多,熟悉和熟练你经不住问,排版有些难看,中间的空隙搞小一点,项目描述的话感觉是从课程中抄下来的,改一改吧,不然烂大街了,每个项目都写一两点,用什么技术实现了什么难点,然后再写一些数字上去像时间又花了90%这样,这样面试会多一些,如果觉得自己的项目还是不够用的话,我有几个大厂最近做过的实习项目,感兴趣的话可以看我简介中的项目地址
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务