C 學習筆記 01揹包

2021-06-27 02:50:28 字數 1066 閱讀 1790

時間限制:

20000ms

單點時限:

1000ms

記憶體限制:

256mb

且說上一周的故事裡,小hi和小ho費勁心思終於拿到了茫茫多的獎券!而現在,終於到了小ho領取獎勵的時刻了!

小ho現在手上有m張獎券,而獎品區有n件獎品,分別標號為1到n,其中第i件獎品需要need(i)張獎券進行兌換,同時也只能兌換一次,為了使得辛苦得到的獎券不白白浪費,小ho給每件獎品都評了分,其中第i件獎品的評分值為value(i),表示他對這件獎品的喜好值。現在他想知道,憑藉他手上的這些獎券,可以換到哪些獎品,使得這些獎品的喜好值之和能夠最大。

提示一:合理抽象問題、定義狀態是動態規劃最關鍵的一步

提示二:說過了減少時間消耗,我們再來看看如何減少空間消耗

每個測試點(輸入檔案)有且僅有一組測試資料。

每組測試資料的第一行為兩個正整數n和m,表示獎品的個數,以及小ho手中的獎券數。

接下來的n行描述每一行描述乙個獎品,其中第i行為兩個整數need(i)和value(i),意義如前文所述。

測試資料保證

對於100%的資料,n的值不超過500,m的值不超過10^5

對於100%的資料,need(i)不超過2*10^5, value(i)不超過10^3

對於每組測試資料,輸出乙個整數ans,表示小ho可以獲得的總喜好值。

樣例輸入

5 1000

144 990

487 436

210 673

567 58

1056 897

樣例輸出

2099

參考:hihocoder01揹包

using system;

namespace knapsack

console.writeline(dp(need, value, m));

}static int dp(int need, int value, int m)

}return fj[m - 1];}}

}

01揹包筆記

01揹包 至今看到最好的揹包文章是 揹包九講 不得不佩服作者,本文只是一些重點的入門筆記。問題描述 v揹包容積,n物品數量,v i 第i件物品的體積,w i 第i件物品的價值,問揹包能裝的最大價值?思路 依次掃瞄每一件物品,判斷該物品取或不取,dp i j 表示對第i件物品的判斷,i 中的i表示物品...

揹包 01揹包

01揹包 有n種物品與承重為m的揹包。每種物品只有一件,每個物品都有對應的重量weight i 與價值value i 求解如何裝包使得價值最大。dp i,v 表示前i個物體 包括第i個 面對容量為v的揹包的最大價值,c i 代表物體i的重量,w i 代表物體i的價值 如果第i個物體不放入揹包,則揹包...

01揹包,完全揹包C 實現

首先,上自己的 由於 注釋詳細,我就不解釋啦。看 就好o o。轉換為了01揹包問題求解。部分演算法與測驗資料資料參照了 不了解01揹包演算法的同學也可以到上述 先學習。本 可以輸出價值與揹包中的物品。先為大家雙手奉上執行結果。define volumn 14 揹包總容量為volumn 1 defin...