分組背包
最多取一個的組,則對於該組來說,每一個狀態只可能由前一組的狀態過來,分不取和取兩種
至少取一個,則沒了不取的選擇,即沒有dp[i][j]=dp[i-1][j]的遞推式
任意取,即01背包,取法包括由前一組不取或取一個,或由該組取一個
dp[i][j]表示前i組,消耗j時間所能取得的最大值
初值賦為-1,表示該狀態不可達,對於dp[0],初值賦為0,即什麼都沒有的時候最大的快樂值為0
還有一個要注意的點c[k]可能為0,會影響到遞推式的順序
發現做這種混合背包的題非常有助於弄清楚各種背包間的區別和聯系
#include
#include
#include
#include
#include
#include
#include
#include