最优装载问题(贪心思想)
2020-06-03 06:08
549 查看
现有5件物品要装上一艘载重量为C的轮船,不考虑体积限制,要求将尽可能多的集装箱装上轮船。
(即对每件物品要么装,要么不装)
[code]#include <iostream> #include <algorithm> using namespace std; int a[101],b[101],c[101]; int x[101]; //a为每个货箱的重量 //b为货箱重量降序排列 //c为b在a的下标 //数组x记录每个货箱装与不装 void load(int n,int C)//货箱的个数 { int a_[101]; for(int i=0;i<n;++i) a_[i]=b[i]=a[i]; sort(b,b+n,greater<int>());//将b降序排列 for(int j=0;j<n;++j) for(int i=0;i<n;++i) if(b[j]==a_[i]) { c[j]=i;a_[i]=-1;break; } for(int i=0;i<n&&a[c[i]]<=C;++i) x[c[i]]=1,C-=a[c[i]]; cout<<"装入:"; for(int i=0;i<n;++i) if(x[i]==1) cout<<i+1<<"号 "; } // 下标: 0 1 2 3 4 // a[]={ 3,5,4,1,9}; // b[]={ 9,5,4,3,1}; // c[]={ 4,1,2,0,3};降序排列a,之后取其下标 int main() { int n,C; cin>>n>>C; for(int i=0;i<n;++i) cin>>a[i]; load(n,C); return 0; }
Run
输入:
5 20
3 5 4 1
输出:
装入:2号 3号 5号
相关文章推荐
- 贪心算法——最优装载问题
- 贪心算法之最优装载问题
- 8.4.1(最优装载问题_简单贪心)
- 贪心算法-4.3最优装载问题
- hdu 2570 //这题想到贪心法有些曲折哈 是一道简单的贪心算法(最优装载问题)
- 最优装载问题(贪心基础)
- 将最优装载问题的贪心算法推广到2艘船的情形,贪心算法仍能产生最优解吗?
- 贪心算法之加勒比海盗船最优装载问题
- 最优装载问题(贪心)
- 0-1 背包问题、背包问题、最优装载问题、哈夫曼编码,这几个问题的思想是什么?
- 贪心-最优装载问题
- 贪心算法一:最优装载问题
- 贪心入门--最优装载问题
- 贪心算法——最优装载问题
- 贪心思想分配饼干问题Java代码实现
- 回溯法解最优装载问题
- 最优装载问题(二进制求法)
- 多处最优服务次序问题(贪心策略)
- 最优服务次序问题(贪心)-算法设计与分析
- 使用STL处理分支限界法处理最优装载问题