1 6 飲料供貨

2021-09-08 04:32:37 字數 898 閱讀 3860

問題:

總共n中飲料,每種飲料表示為(s[i],v[i],c[i],h[i],b[i]),s表示名稱,v表示容量。c表示能夠買的最大數量,h表示愜意度,b表示實際購買量

在v[i]*b[i]求和=v的情況下,h[i]*b[i]求和最大化

最優化。毫無疑問。考慮動態規劃跟貪心。

狀態轉移方程:

設opt(v』,i)表示從 i 到 n-1 種飲料中,ci 為第i種飲料可能的最大數量。算出總量為v』的方案中愜意度之和的最大值。

那麼遞迴式就應該是:

opt(v』,i)= max(k=0,1。2…,ci,i=0。1。2…,n-1)

這裡我認為須要說明給出的飲料組合終於能夠組合出v。

遞推:

int cal(int v, int t) 

}} }

return opt[v][0];

}

記憶化搜尋:

int opt[v+1][t+1];    //初始化時opt中儲存值為-1,表示該子問題尚未被求解

int cal(int v, int type)

if(v < 0) return -inf;

if(v == 0) return 0;

else if(opt[v][type] != -1) return opt[v][type]; //該子問題已求解,則直接返回子問題的解

int ret = -inf; //子問題尚未求解,則求解該子問題

for(int i = 0; i <= c[type]; ++i)

} return opt[v][type] = ret;

}

程式設計之美 飲料供貨

題目大意 水房能容納飲料的總量是v,有一批飲料,每種飲料單個容量都是2的方冪,每種飲料資訊如下 si,vi,ci,hi 分別對應 名字,容量,滿意度 求在滿足總容量等於v的情況下,求滿意度的最大值。分析 1 動態規劃解法,不難看出這是一道完全揹包問題 具體思路解法見 第七章 揹包問題 完全揹包 2 ...

程式設計之美 飲料供貨

動態規劃解之 view code 1 2 總共n中飲料,每種飲料表示為 s i v i c i h i b i s表示名稱,v表示容量,c表示可能的最大容量,h表示滿意度,b表示實際購買量 3v i b i 求和 v的情況下,h i b i 求和最大化4 56 include 7using name...

買飲料難題

contest 多校訓練 985專場 problem e 985的買飲料難題 time limit 1 sec memory limit 128 mb submit 224 solved 118 submitstatusweb board description 天氣太熱了,985制定了對未來的規劃...