上交OJ-1013. 無限背包

1013. 無限背包


Description

你現(xiàn)在有一個(gè)體積為V的大袋子,有N種物品,假設(shè)每種物品的數(shù)量有無限多個(gè),而且第i種物品的體積是c[i],價(jià)值是w[i],請(qǐng)選擇一些物品放入袋中,使袋中物品的價(jià)值總和最大。

注意每種物品的數(shù)量是無限多的;對(duì)于放入袋中的同種物品數(shù)量沒有限制。

Input Format

第一行包含兩個(gè)正整數(shù)V和N,分別代表袋子的體積和物品的種類數(shù)。

以下N行分別由2個(gè)正整數(shù)組成,代表每種物品的體積和價(jià)值。

V≤10000,N≤1000。

保證操作可在C++ int范圍內(nèi)完成。

Output Format

輸出一個(gè)整數(shù),表示最大的價(jià)值總和

Sample Input

5 3
2 3
3 2
4 1

Sample Output

6

分析

這是一個(gè)典型的動(dòng)態(tài)規(guī)劃問題,其關(guān)鍵也是記錄中間結(jié)果。

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

int main()
{
    int V,N;
    int space[1001],value[1001];
    int tmp_V[10001];
    int i,j;
    
    memset(tmp_V, 0, sizeof(tmp_V));
    
    cin>>V>>N;
    for(i=1; i<=N; i++)
        cin>>space[i]>>value[i];
    
    for(i=1; i<=V; i++) {
        for(j=1; j<=N; j++) {
            if(i >= space[j])
                tmp_V[i]=max(tmp_V[i], tmp_V[i-space[j]]+value[j]);
        }
    }
    
    cout<<tmp_V[V]<<endl;
    
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 樹形動(dòng)態(tài)規(guī)劃,顧名思義就是樹+DP,先分別回顧一下基本內(nèi)容吧:動(dòng)態(tài)規(guī)劃:?jiǎn)栴}可以分解成若干相互聯(lián)系的階段,在每一個(gè)...
    Mr_chong閱讀 1,603評(píng)論 0 2
  • 又是快要醒來的時(shí)候你來了,見了我還是對(duì)我哈哈笑,我,姥姥,還有你,在姥姥的臥室里面,我問你好點(diǎn)沒,你站在那里說沒事...
    Vero_7e7e閱讀 320評(píng)論 0 0
  • 秋風(fēng)蕭瑟情未了, 亦有綠柳為君留。 艷霞紅染天將暮, 誰(shuí)言紅塵情已絕!
    別在說別再說閱讀 235評(píng)論 0 0
  • 卜算子.歸人輕推門 文/絮飛兒 歸人輕推門,欲給傾城喜。一泊明眸訴柔情,縱把秋千倚。 驚起亦癡嗔,羞掩胭脂淚。折柳...
    絮飛兒閱讀 636評(píng)論 0 4
  • 最近抑郁魔怔頻發(fā),不想聊天,對(duì)好多事情都提不起興趣,就連買來要吃的那只鯉魚都已經(jīng)在浴缸里養(yǎng)了好幾天。沒有給自己做一...
    陶小魚閱讀 299評(píng)論 4 1

友情鏈接更多精彩內(nèi)容