多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[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; } ```