鉴于商店中可用的产品列表,我需要选择一组产品到我的购物车,这样我的购物车价值应该是最大的。
限制条件如下,购物车的尺寸为.git/
。所选产品应单独和完全适合购物车,为购物车提供最大可能的价值。每种产品可以选择一件。
我与每个产品都有l*w*h
,product id
,price
,l
,w
,ht
。怎么能实现呢?
我提出了如下逻辑。
但这并没有让我得到具有最大购物车价值的正确产品清单。上面的逻辑有什么问题?
答案 0 :(得分:1)
三维是否整数有一定的有限界限?然后可以通过动态编程来解决。但我认为应该做出一些假设,例如:子问题的划分应该是端到端的切割平面等。没有这种动态编程是不可行的。
这里的关键技巧是你需要考虑一个盒子可以以多种方式定向的可能性,并且它是沿着购物车的三个轴对齐其自己的三个维度的方式的数量。这是3!三维为= 6。因此,在处理第i个产品时的动态编程中,包括将其3个维度解释为L,W,H的所有6种方式。