阿里编程题求解!

阿里的编程题,求解!
天猫国际每天都会卖出很多跨境商品,用户每次下单可能购买多个商品,购买总数小于10件,由于海关规定,每一个进入海关的箱子里面的商品总额不能超过2000元(否则不能清关)所以当用户下单总金额超过2000,必须使用多个箱子分开包装运输;现在为了节约运输成本,希望在满足海关的要求下,能够使用尽可能少的箱子。

注:

每个商品都有自己的单价,有特定的长宽高,所有商品都是长方体

商品可以横放、竖放、侧放,但不用考虑斜放,但是长宽高各项总和必须都要小于等于箱子的长宽高

假定目前天猫国际使用同一种规格的箱子

boxLong,boxWidth,boxHigh

(箱子长,箱子宽,箱子高)


某用户下单买了如下商品

n(商品件数)

item1Price,item1Long,item1With,item1High

item2Price,item2Long,item2With,item2High

item3Price,item3Long,item3With,item3High

item4Price,item4Long,item4With,item4High

...

(商品价格,商品长,商品宽,商品高)

(所有输入类型均为int型正整数)


请你算出需要使用最小的箱子数量,可以将这些商品顺利得清关送到消费者手中,如果无解,输出-1

#阿里巴巴#
全部评论
遍历所有两个商品看是否能放在一个箱子里,可以的话总数减一……然后就全部通过了……
点赞 回复 分享
发布于 2017-08-25 21:26
是不是背包问题?
点赞 回复 分享
发布于 2017-08-25 21:11
最多10个物品,应该可以搜索,就是写个dfs(int index,int l,int w,int h,int &money) 意思是考虑当前为第index个物品,剩余空间为l,w,h,当前价值为Money,还需要多少个盒子才能装完,对于每个货物考虑三种状态放进当前的盒子,然后盒子也相应的被分割四个小盒子,继续做dfs
点赞 回复 分享
发布于 2017-08-25 21:34
一开始以为是背包问题,结果做起来发现不对。**,三维装箱问题,真要有人在这么短的时间内写出来,我服。
点赞 回复 分享
发布于 2017-08-25 21:17
直接输出 4  通过率40%
点赞 回复 分享
发布于 2017-08-25 21:12

相关推荐

no_work_no_life:深圳,充电宝,盲猜anker
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务