最优装载c语言贪心算法,最优装载(贪心算法)

算法设计例题:最优装载(贪心)

memory limit: 32768KB    time limit: 1000MS

accept: 24    submit: 68

Description

有一批集装箱要装上一艘载重量为C的轮船。其中集装箱i的重量为wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。

Input

输入的第一个为测试样例的个数T( T <= 100 ),接下来有T个测试样例。每个测试样例的第一行是一个整数n( n <= 1000 )和一个非负数C( C <= 10000 ),分别表示集装箱的个数以及轮船的载重量。接下来有n行,每行一个非负数,表示每个集装箱的重量。

Output

对应每个测试样例输出一行,格式为"Case #: D V",其中'#'表示第几个测试样例(从1开始计),D为轮船可以装载的集装箱数量的最大值,V为满足D最大时轮船的实际载重量。

Sample Input

1

5 100

20

50

120

99

30

Sample Output

Case 1: 3 100

Author

Eapink

解决代码:

#include #include using namespace std; int main() { int i,j,testNum,containerNum;//分别为测试个数、集装箱个数 float weight[1000];//集装箱重量 float load;//轮船载重量 cin>>testNum; for(i=0;i>containerNum>>load;        for(j=0;j>weight[j];   sort(weight,containerNum+weight);   //开始装载   int count=0;   float sum=0.0;   for(int k=0;k=weight[k])   {   sum=sum+weight[k];   load=load-weight[k];   count++;   }   else   break;      }   cout<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值