pub fn knapsack_01_items(
weights: &[usize],
values: &[i64],
capacity: usize,
) -> (i64, Vec<usize>)Expand description
0/1 xalta + qaysi buyumlar tanlanganini qaytaradi.
Buning uchun to’liq 2D jadval kerak (O(n·W) xotira), chunki orqaga qarab yurib tanlovni tiklaymiz.
Qaytadi: (maksimal_qiymat, tanlangan_buyum_indekslari).
§Misol
use rust_algorithms::dp::knapsack_01_items;
let (qiymat, buyumlar) = knapsack_01_items(&[1, 3, 4, 5], &[1, 4, 5, 7], 7);
assert_eq!(qiymat, 9);
assert_eq!(buyumlar, vec![1, 2]); // og'irliklari 3 va 4