1.问题

2.解析
贪心法:
如果存在装载方案,则寻找使得第一条船的装载量与c1差值最小的解。C1:W1、W2;
C2:W3.并且C1-(W1+W2)不是最小解,所以交换C1和C2上的集装箱,使得存在更小解。
交换W2和W3,使得C1-(W1+W3)< C1-(W1+W2)
重复以上方法,直到找到一个使得第一条船装载量与C1的差达到最小的解。
3.设计
sort( first: w+1, last: w+1+n) ;
int cnt=1;
for(int i=1;i<=n;i++){
if (suma+w[i]<=c1){
a[cnt++]=w[i] ;
suma+= W [ i];
}
}
4.分析
复杂度:O(nlogn)。
5.源码
https://github.com/lmouette/-/blob/main/homework10.cpp
该博客介绍了如何使用贪心算法来优化集装箱在船只上的装载,以最小化第一条船装载量与给定载重量的差值。通过排序和迭代,找到最佳装载方案,复杂度为O(nlogn)。提供了源码实现链接供读者参考。
1018

被折叠的 条评论
为什么被折叠?



