[TOC]
# 问题描述
![](https://box.kancloud.cn/2016-04-17_57134955976fb.jpg)
# 算法思想
> 重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解。
# 分析
**贪心选择的性质:**
设集装箱已经依其重量从小到大排序,(X1,X2,..,Xn)是最优装载问题的一个最优解。又设k=min(1<=i<=n){i|Xi=1}。易知,如果给定的最优装载问题有解,则1<=k<=n(k表示的是最优解中的第一个元素)。
![](https://box.kancloud.cn/2016-04-17_57134955b3499.jpg)
**最优子结构性质:**
满足
# 代码实现-1
```
#include <stdio.h>
int
Loading(int a[],int n,int Max) {
int i;
int cur=0;
int count = 0;
for(i=0;i<n;i++) {
if(a[i]<=Max-cur) {
cur+=a[i];
count++;
}
}
return count;
}
int
main(void) {
int a[] = {1,2,3,4,5,6,8,9,10};
int n = 9;
int Max = 10;
int load = Loading(a,n,Max);
printf("%d",load);
return 0;
}
```