src/cplib/utils/knapsack

  Source   Edit

Procs

proc solve_01knapsack_meet_in_middle(items: openArray[tuple[v: int, w: int]];
                                     W: int): int {....raises: [], tags: [].}
sum(w_i) <= Wとなるようなitemの取り方で、vが最大のものを選ぶ O(N 2^{N/2})   Source   Edit
proc solve_01knapsack_NV(items: openArray[tuple[v: int, w: int]]; W: int): int {.
    ...raises: [], tags: [].}
sum(w_i) <= Wとなるようなitemの取り方で、vが最大のものを選ぶ O(N sum(v_i))   Source   Edit
proc solve_01knapsack_NW(items: openArray[tuple[v: int, w: int]]; W: int): int {.
    ...raises: [], tags: [].}
sum(w_i) <= Wとなるようなitemの取り方で、vが最大のものを選ぶ O(NW)   Source   Edit
proc solve_BoundedKnapsack(items: openArray[tuple[v: int, w: int, m: int]];
                           W: int): int {....raises: [], tags: [].}
  Source   Edit
proc solve_UBknapsack_NW(items: openArray[tuple[v: int, w: int]]; W: int): int {.
    ...raises: [], tags: [].}
各アイテムを何回でも選んでいいナップサック問題 O(NW)   Source   Edit