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...