資料結構與演算法

從(重量, 價值)為 (2, 3)、(3, 4)、(4, 5)、(5, 6) 的4件物品中選擇,放入容量為8的背包。每件物品只有1個,且不能分割。在重量合計8以下的條件下,價值合計的最大值為多少?

  1. A7
  2. B9
  3. C10
查看答案與解析

正確答案:C. 10

選擇重量3與5的物品,重量為8,價值為 4 + 6 = 10,這就是最大值。重量2與5(價值9)或3與4(價值9)也放得進去,但達不到10;選3件時即使最輕的 2 + 3 + 4 也是9,超過容量。依單位重量價值由高到低放入的貪婪演算法,放入重量2與3(價值7)後,剩餘容量3放不下任何物品,停在7。動態規劃逐一物品更新「容量 c 以內可達到的最大價值」的表,對物品數 n 與容量 W 以 O(nW) 求出最佳值。

  • A. 這是依單位重量價值由高到低放入的貪婪演算法的結果,不是最佳解。
  • B. 這是重量2與5,或3與4的組合的價值,不是最大值。
  • C. 正確。以重量3與5的物品剛好用完容量8,價值為10。
練習這個領域 前往領域頁面

相關計算工具

資料結構與演算法的其他題目

  1. 關於在字串中尋找樣式的 BM 法(Boyer-Moore 演算法)的特徵,下列何者正確?
  2. 某個可變長度陣列在容量已滿時加入元素,會重新配置2倍容量的區域並複製所有元素。對容量為1的空陣列逐一加入1,000個元素時,被複製的元素總數為多少?
  3. 在元素很多、負載因子維持在0.5左右的雜湊表中,使用線性探測的開放定址法往往比鏈結法(以鏈結串列串接的方法)快,最適當的原因為下列何者?
  4. 在 GPU 這類平行處理裝置上排序時,有時會使用雙調排序(bitonic sort)這類比較與交換步驟固定的排序(排序網路),其理由為下列何者?
  5. 對於有 n 個元素的陣列,將所有不同的兩個元素組合各比較一次的處理(以雙重迴圈將第 i 個元素與其後的所有元素比較,並讓 i 逐一前進),其時間複雜度為下列何者?