1、揹包問題
(1)01揹包
每件物品僅用一次
可以做空間優化
dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
0,1揹包狀態均是從前一迴圈的狀態轉移
(2)完全揹包
每件物品可以用無限次
完全揹包的狀態可以從當前迴圈的狀態轉移,進行優化
(3)多重揹包
每件物品有不同的數量限制
可以對物品的數量限制進行拆分(1~2^k+c),從而轉化為01揹包問題
也可以用單調佇列進行優化(b站,揹包9講)
(4)分組揹包
組內僅選一件物品
與01揹包和完全揹包相似,
dp時列舉第i組而不是第i個物品,
每組中再對組內物品進行列舉。
Acwing演算法基礎課知識點
知識點 基礎演算法 模板鏈結常用 模板1 基礎演算法 排序 二分高精度 字首和與差分 雙指標演算法 位運算離散化 區間合併 資料結構 模板鏈結常用 模板2 資料結構 鍊錶與鄰接表 樹與圖的儲存 棧與佇列 單調佇列 單調棧 kmptrie 並查集堆 hash表 c stl使用技巧 搜尋與圖論 模板鏈結...
Acwing 基礎課 基礎演算法 歸併排序
參考鏈結 include const int n 100005 int a n int t n voidms int l,int r while i mid t k a i while j r t k a j for int i l i r i intmain 題目鏈結 參考鏈結 題目大意 給定乙個...
acwing演算法基礎課 第一講 基礎演算法
785.快速排序 給定你乙個長度為n的整數數列。請你使用快速排序對這個數列按照從小到大進行排序。並將排好序的數列按順序輸出。輸入格式 輸入共兩行,第一行包含整數 n。第二行包含 n 個整數 所有整數均在1 109範圍內 表示整個數列。輸出格式 輸出共一行,包含 n 個整數,表示排好序的數列。資料範圍...