有这样的一个题,题目如下:
1. 有一艘货轮下底长170米,上底长200米,宽度27米,高度 22米(也就是说从船的侧面看是个梯形)最大载重 40000吨;
2. 货轮的上底面是空,其余各面的重量均匀分配;
3. 所有集装箱的尺寸一样(长方体),长度(L)12米,宽度(W)2.4米,高度(H)2.6米,每个集装箱的空重5吨,最大重量(空箱重量 + 满载货物重量)为30吨;
4. 集装箱的表面重量均匀分配;
5. 集装箱在货轮里面水平放置,可以横,竖放置,但不能立着;
横放:集装箱长与船的长方向一致
         竖放:集装箱长与船的长方向成90度角
6. 集装箱垂直方向可以超出船面,但最多不能超过船面7米;水平方向不能超出船体;
7. 货船与集装箱任何时候都处于水平位置
8. 集装箱装满货物后重心位置不变;
9. 装满货物后的货轮的重心,与空船的重心(长宽高)的偏差不能超过一个集装箱的(长宽高), 并且不能比空船的重心高!
10. 以船的长(L)宽(W)高(H)为基础定义三维坐标去描述船和集装箱的位置关系 
船的空间坐标(L, W, H)
下底面:(15, 0, 0), (15, 27, 22), (185, 0, 0), (185, 27, 0)
上底面::(0, 0, 22), (200, 0, 22), (0, 27, 22), (200, 27, 22)要求:
1. 怎样放置集装箱,货轮能装载的货物最多(集装箱个数最多)?
2. 在最开始随机输入10000个集装箱, 每个的满载重量(空箱重量+满载货物重量)为W, 10 <= W <= 30;
//////////////////////////////
输入输出方式: (如果自定义界面输入输出更好 &#61514;)
Input:
集装箱号:
集装箱的满载重量:
Output:
集装箱号:
所占用的船空间位置:(L1, L2), (W1, W2), (H1, H2) 举例:
1. 如果3号集装箱横放在货船的左下角底部,则其输出值为:
集装箱号:3
所占用的船空间位置:(15, 27), (0, 2.4), (0, 2.6) 2. 如果3号集装箱竖放放在货船的左下角底部,则其输出值为:
集装箱号:3
所占用的船空间位置:(15, 17.4), (0, 12), (0, 2.6) 
//////////////////
我对此类问题不知从何下手,希望高手们能指点一下(只需要算法的关键思想就可以了)。