求一个这样的算法:
条件:1.有n种类型的车,每种车的容积是不一样的,假设为n1,n2.
      2.有m种小箱子,每个小箱子的体积不一样,假设为m1,m2.
      3.现有k1个m1,k2个m2.。。,要将这些箱子装入某一个车中
求:装入哪个车中可以让车的有效容积能够得到最大利用?能提供一个思路也可以?

解决方案 »

  1.   

    Merkle-Hellman,背包算法...自己google一下吧...
      

  2.   

    这个问题比较复杂哎....
    struct Cube
    {
       int X;
       int Y;
       int Z;
    }Cube[] vehicles;
    Cube[] boxes;
    int[]  numOfBoxes;算法上面 从1维到2维再到3维...
    一维 好办不说
    二维 能容纳N个M种长方形的最小长方形...怎么算?
    三维 ...
      

  3.   

    将三维转换为二维有一点思路,不晓得对不对?
    因为是箱子,必须将开口朝上,所以高就是箱子的高,假设为z
    然后讲某一种箱子全摞起来,即k1*m1.高/车厢的高度或者这种产品的限高,即可以得出会有几栋,将立方体转化为长方形计算
    现在碰到问题:长方形可以有几种放法,如果确定那种放法能放得最多?
      

  4.   

    我也遇到了类型问题,只是有个想法,更多交流,请访问:
    http://huiran.sap.blog.163.com/