揹包九講學習 自己的理解

2022-02-27 12:37:55 字數 3187 閱讀 5751

1. 01揹包

}cout<2 空間複雜度優化

#includeusing namespace std;

const int ma=1e3+5;

int w[ma],v[ma];

int dp[ma];

int main()

}cout<

完全揹包問題

多重揹包問題

/*大雪菜**(2進製優化)*/

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

typedef long long ll;

const int ma=2e3+5;

int dp[ma];

struct good

;vectorgoods;

int main()

); }

if(s > 0)goods.push_back();

}for(auto good : goods)

}cout

typedef long long ll;

const int ma=3e3+5;

int w[ma],v[ma],num[ma];

int dp[ma];

int n,v,ans;

void bag01(int tw,int tv)//01揹包

}void bagcom(int tw,int tv)//完全揹包

}int main()

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

else

bag01(ncount * w[i] , ncount * v[i]);//最後再處理一下}}

cout單調佇列優化

#include#include#include#includeusing namespace std;

typedef long long ll;

const int n = 2e4+5;

int dp[n];

int n, m, v, w, c;

int q[n], h = 0, t = -1;

int val(int u, int k)

int main()

//更新+刪

for(int p = maxp; p >= 0; -- p)}}

}int res = 0;

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

res = max(res, dp[i]);

printf("%d\n", res);

return 0;

}**2:

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

typedef long long ll;

const int ma=2e3+5;

int n,v;

int dp[ma],g[ma],q[ma];

int main()}}

cout混合揹包問題

cout二維費用的揹包問題

分組揹包問題

有依賴的揹包問題

揹包問題求方案數

揹包問題求具體方案

一些揹包題目

cf189a

題意:輸入n,a,b,c,讓用a,b,c構成n,如何構成才能是abc使用數量最多。

分析:簡直了一道裸完全揹包(要裝滿)。如果會的話5minac,,不會就暴力吧。。。

#includeusing namespace std;

typedef long long ll;

const int ma=1e5+5;

const int inf=1e9+5;

int dp[ma],a[5];

int main()

}printf("%d\n",dp[v]);

return 0;

}

揹包問題(揹包九講) 學習筆記

學習了dd大佬的揹包九講之後,個人的一些學習筆記以及一些看法。dp i j 表示前i個物品,容量為j的時候,最大的價值 思路 將前i件物品放入容量為v的揹包中求最大價值這個問題,若只考慮第i件物品的策略 放或不放 那麼問題就可以轉換成涉及前i 1的物品的問題。此時有兩種情況,1 不放第i件物品,那麼...

揹包九講學習筆記(2)

寫在前面 一方面學習揹包九講 這個十分清晰,重點標記清楚。但有些需要自己理解的和重點的,我做了如下筆記,方便別人理解,也方便自己複習,如有錯誤,歡迎指正。題目特點1.n種物品v容量,每種物品費用c i 價值w i 2.每種物品無限件 3.要求 費用和不超過揹包容量且價值總和最小簡單思路 基本思路 從...

揹包九講 學習筆記(一)

本文是針對揹包九講2.0的學習筆記。給定n個物體和乙個揹包,物品i的重量是wi,價值vi,揹包容量為c,物品只能選擇不裝或裝入揹包,問如何選擇裝入揹包的物品,使裝入揹包中的物品的總價值最大?輸入 c 0,wi 0,vi 0,1 i n 輸出 x 1,x2,xn x i in 滿足 sum w i x...