背包问题请看这
如果出去幸福度不看的话就是一个01背包问题,着实加上幸福度后也不算难,因为须要满足幸福度是16的倍数,所以只须要两个数x,y加起来是16的倍数,所以我们就设饱食度为j时,幸福度与16取模为k时能吃的最多月饼个数,递推方程为:
f [ j ] [ k ] = m a x ( f [ j ] [ k ] , f [ j − v [ i ] ] [ ( k − w [ i ] + 16 ) f[j][k]=max(f[j][k],f[j-v][(k-w+16)%16]+1); f[j][k]=max(f[j][k],f[j−v][(k−w+16)
AC代码: