送披萨

非常好的一道题目,感觉这种类型的题目都被玩出花来了。。。

主要是这个可以选择送或者不送非常搞人心态,虽然从实际情况上来看就是路过一个客户时,如果是正利润那么一定要送,如果是负利润那么一定不送,但是为了DP的方便,我们可以选择即使是正利润也可以不送,负利润也可以送,只要最后覆盖了最优答案即可

注意好好把这个状态读几遍,这个\(cnt\)表示的是一定要送的客户数(而且这些客户都是在区间\([i,j]\)之外的),最大收益不包含区间\([i,j]\)的收益

看这个代码,从DP方程来说,好像区间越来越大了,但是最终的返回条件是\(cnt==0\),所以是以\(cnt\)为阶段的;中途枚举\(k\)就是在做送或者不送的选择;由于我们可以选择即使是正利润也可以不送,负利润也可以送(枚举\(k\)),而且我们的最大收益(数组值)不包含区间\([i,j]\)的收益,所以我们可以直接作出提前计算(负的可以继续减)

这道题目算的也是最大收益而不是最小损失,所以费用提前计算当然可以转换为贡献提前计算

update 2024.6.30

这里就想每一次决策的时候,分摊的费用是多少,由于每个人每秒钟减少的收益是相同的而且可以选择送或者不送,所以我们一定要添加一维表示还要处理多少人来计算费用

posted @ 2024-02-03 11:46  最爱丁珰  阅读(4)  评论(0编辑  收藏  举报