CJOJ 2307 一本通 完全揹包(動態規劃)

2022-03-04 05:33:44 字數 949 閱讀 7318

設有n種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n種物品中選取若干件(同一種物品可以多次選取),使其重量的和小於等於m,而價值的和為最大。

第一行:兩個整數,m(揹包容量,m<=200)和n(物品數量,n<=30);

第2..n+1行:每行二個整數wi,ui,表示每個物品的重量和價值。

僅一行,max=乙個數,表示最大總價值。

10 4

2 13 3

4 57 9

max=12

cjoj:

動態規劃

a設f[i][j]表示前i件物品重量為j時的最大價值,所以有

f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i])

#include#include#include#include#include#includeusing namespace std;

const int maxn=1000;

const int maxm=300;

const int inf=2147483647;

class item

;int n,m;

vectori;

int f[maxn][maxm]=;

int main()

); for (int i=1;i<=n;i++)

); }

int ans=0;

for (int i=1;i=0)

f[i][j]=max(f[i-1][j],f[i-1][j-i[i].weight]+i[i].value);

else

f[i][j]=f[i-1][j];

ans=max(ans,f[i][j]);

//cout<} //cout<} cout<<"max="

}

完全揹包變式 一本通 1293 買書

1293 買書 題目描述 小明手裡有n元錢全部用來買書,書的 為10元,20元,50元,100元。問小明有多少種買書方案?每種書可購買多本 輸入 乙個整數 n,代表總共錢數。0 n 1000 輸出 乙個整數,代表選擇方案種數。輸入樣例 20 輸出樣例 2 提示 樣例輸入 樣例輸入2 15樣例輸入3 ...

佇列(一本通)

這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...

情感修煉一本通

實踐準則 經驗親密關係構成要素 了解 關心 相互依賴性 相互一致性 信任以及承諾 親密的伴侶彼此間有著廣泛而私密的了解。他們熟知彼此的經歷 愛好 情感和心願,而且一般不會把這些資訊透露給其他人。親密的伴侶關心對方,彼此能從對方身上感受到更多的關愛。如果人們認為自己的伴侶了解 理解並欣賞自己,其親密程...