关注
dp[k]表示把前k个分成若干组,这时候他后面都已经加上了,应该多加的数。 就是dp[k]=ans_k+x(组数)*sum_ans(k+1,n); dp[k]->dp[i] Ask(l,r)代表l到r的最大值减去最小值 用st搞出来 Ans_sum/sum_ans都代表前缀和 Cost(l,r)代表l到r的ask+sum。 方法一:数学推导 Dp[k]=ans_k+x(组数)*sum_ans(i+1,n)+x*sum_ans(k+1,i); Dp[i]=ans_i+ans_sum(i+1,n)*(x+1) =ans_k+ans_sum(k+1,i)*(x+1)+ask(k+1,i)+ans_sum(i+1,n)*(x+1) =dp[k]+ans_sum(k+1,i)+ask(k+1,i)+ans_sum(i+1,n) =dp[k]+cost(k+1,i)+ans_sum(i+1,n); 方法二: 瞪眼法 多加了cost(k+1,i) 更新后面+sum_ans(i+1,n); dp[i]=dp[k]+sum_ans(i+1,n)+cost(k+1,i); 优化 n*logn 实际上就是在找min(dp[k]+cost(k+1,i))+一个定值。 Cost非递减,dp要是再增,肯定不行 从i-1开始维护一个dp是递减的序列。 A了
查看原帖
点赞 评论
相关推荐
04-14 16:17
保定学院 软件测试 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
29501次浏览 214人参与
# 妈妈治愈了你哪些脆皮时刻 #
46868次浏览 345人参与
# 27届实习投递记录 #
108584次浏览 1061人参与
# 我的工作日记 #
207138次浏览 1817人参与
# 我的求职总结 #
508695次浏览 7056人参与
# 要毕业了,再不说就来不及了 #
4072次浏览 77人参与
# 大学生该如何认清当下的就业环境? #
178087次浏览 938人参与
# 摸鱼被leader发现了怎么办 #
206971次浏览 937人参与
# 我与AI的日常 #
9907次浏览 142人参与
# 腾讯工作体验 #
645405次浏览 3907人参与
# 如果公司降薪,你会跳槽吗? #
168382次浏览 966人参与
# 牛友的志愿填报指南 #
72136次浏览 503人参与
# 你遇到过哪些神仙同事 #
147173次浏览 778人参与
# 材料专业就业可以去哪些企业岗位 #
69027次浏览 396人参与
# 滴!实习打卡 #
860447次浏览 6898人参与
# 面试被问期望薪资时该如何回答 #
406148次浏览 2221人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168494次浏览 913人参与
# 你在职场上见过哪些“水货”同事 #
41553次浏览 175人参与
# 今年秋招哪家公司给的薪资最良心? #
488017次浏览 2600人参与
# 数字马力求职进展汇总 #
356992次浏览 2407人参与

