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

浙公网安备 33010602011771号