這題是01背包的動規(guī)寫法,代碼有點(diǎn)小問題得改改。應(yīng)該是這樣:開個二維數(shù)組f表示前i個物品、容量為j時的最大價值。輸入總?cè)萘縨和物品數(shù)n,然后循環(huán)讀每個物品的重量w和價值c。初始化第一行第一列都為0。狀態(tài)轉(zhuǎn)移方程就是:如果當(dāng)前容量j >= w,那就比較放進(jìn)第i個物品和不放的價值,取大的那個,即f = max(f] + c, f);否則就直接等于f。最后輸出f就行。原代碼語法有誤,比如f(0,i)應(yīng)該用方括號,還有循環(huán)里沒定義數(shù)組維度,應(yīng)該先setlength分配內(nèi)存。總之核心思想就是每步做決策,裝還是不裝,靠狀態(tài)轉(zhuǎn)移搞到底。