atcoder ABC364 E - Maximum Glutton

原题链接:https://atcoder.jp/contests/abc364/tasks/abc364_e

[i这个题本质上是个二维背包,很容易想到状态dp[ i ][ j ][ k ]表示考虑完前 i 个菜且甜度不超过 j ,且甜度不超过 k 能吃的最多菜数

但是数据量限制的很死,x和y均在1e4数量级,用暴力二维背包肯定会超时

这里引入一个背包问题常用的技巧,就是将dp的key和value交换,即dp[ i ][ j ][ k ]表示考虑完前 i 个菜,选了 j 道菜且总甜度不超过 k 的最小咸度

这里是将原本的 j 和dp的属性交换了,这样的话就可以很大限度的优化时间和空间复杂度,让这一题可以ac

posted @ 2024-07-29 11:17  1DemonS2  阅读(35)  评论(0)    收藏  举报