日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

背包模型题目集合

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 背包模型题目集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 背包模型
  • 01背包
    • AcWing 423. 采藥
    • AcWing 1024. 裝箱問題
    • Luogu 2925 干草出售
    • Proud Merchants
  • 完全背包
    • P1616 瘋狂的采藥
    • P1853 投資的最大效益
    • Piggy-Bank
  • 多重背包
    • Luogu P1776 寶物篩選
    • HDU 1059 Dividing
  • 混合背包
    • P1833 櫻花
  • 二維費用背包問題
    • P1507 NASA的食物計劃
    • HDU 2159 FATE
  • 分組背包
    • AreYouBusy
    • P1757 通天之分組背包
    • HDU 1712 ACboy needs your help
  • 有依賴背包問題
    • P1064 [NOIP2006 提高組] 金明的預算方案

背包模型

01背包

AcWing 423. 采藥

思路:
裸的01背包問題,在本題中我們將采藥時間當作背包容量限制,
dp[i][j]表示前i個草藥用了j個時間的最大價值
當然可以狀態壓縮,壓縮成一維情況
代碼:
代碼
狀態壓縮代碼

AcWing 1024. 裝箱問題

思路:
01背包問題,在本題中求剩余空間最小,我們可以求最多裝多少空間,然后一減就行,最多空間怎么求?我們將空間同時看作01背包里的價值和體積,然后求最大價值即可

代碼:

Luogu 2925 干草出售

鏈接
思路:
和上一個裝箱問題一樣,體積同時也當價值

代碼:

Proud Merchants

鏈接:
思路:
講的很詳細
01背包加上一個限制條件
每個物品有三個屬性:p,q,v
只有當剩余前的數量>=q時才能買
對于兩個物品:

  • p1,q1,v1
  • p2 q2 v2
    如果先買1后買2,至少需要錢p1+q2
    如果先買1后買1,至少需要p2+q1
    如果買1更劃算:p1+q2<p2+q1
    –> q1-p1>q2-p2
    也就是差值大的(限制金額和購買金額)先買
    但是我們排序時,要按照q-p從小到大排序,因為我們的狀態表達式dp[i][j]=dp[i-1][j-p[i]]+v[i],式子dp[i-1][j-p[i]]+v[i]說明了我們先買了第i件商品,再考慮第i-1件,這相當于排在后面的商品會先買,所以我們要將差值大的放在后面
    代碼:
  • 完全背包

    P1616 瘋狂的采藥

    鏈接
    題解:
    完全背包裸題
    代碼:

    P1853 投資的最大效益

    鏈接:
    題解:
    不難看出是完全背包,區別在于要投資n年,而每個債券是年計算的,所以我們每次求出一年的最大價值,然后加在本金上,繼續求下一年,也就是s隨著年份增加是改變的,每次增加dp[s]
    記得數組要開大不然會被卡
    代碼:

    Piggy-Bank

    鏈接:
    思路:
    題目問最少能存多少錢?這么問的前提是空間都占滿了,所以我們將dp的初始值不能賦為0,因為求最少,所以賦值為無窮大,然后正常走一邊完全背包即可
    代碼:

    多重背包

    Luogu P1776 寶物篩選

    多重背包的裸題,記得用二進制優化
    代碼;

    HDU 1059 Dividing

    鏈接:
    題解:
    要求能否平分價值,那我們就求出總價值,然后看能否用用硬幣正好表示出總價值的一半,如果可以就說明能均分。多重背包+dp初始值為-inf
    坑點:

  • 每次數據都要額外輸出一行,坑爹
  • 價值可能為奇數,如果是奇數直接輸出不可能,因為c++里面的除是向下取整的,如果不特判會出錯
    代碼:
  • 混合背包

    P1833 櫻花

    題目:
    題解:
    混合背包的裸題
    代碼:

    二維費用背包問題

    P1507 NASA的食物計劃

    模板題,就是01背包加一個限制條件
    代碼:

    HDU 2159 FATE

    也是模板題,特殊在答案要求輸出最大忍耐度,所以在求dp的過程中,對dp>=n的情況記錄最低耐力值minn,然后用m-minn即可
    代碼

    分組背包

    AreYouBusy

    好題,綜合性還不錯題解+代碼

    P1757 通天之分組背包

    模板題,寫錯了一個地方卡了我好久。。
    代碼:

    HDU 1712 ACboy needs your help

    模板題,稍微變變,n個課,一共m天,我們就分成n組,限制條件為m,每組內的元素分別就是1~m天,注意別出現負下標
    代碼:

    有依賴背包問題

    (有待深入了解)

    P1064 [NOIP2006 提高組] 金明的預算方案

    P1064 [NOIP2006 提高組] 金明的預算方案
    Consumer

    總結

    以上是生活随笔為你收集整理的背包模型题目集合的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。