memoize knapsack