最优装载(贪心)
来源:互联网 发布:qq飞车战魂评测数据 编辑:程序博客网 时间:2024/05/17 06:54
算法设计例题:最优装载(贪心)
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 <iostream>
#include <algorithm>
using namespace std;
int main()
{
int i,j,testNum,containerNum;//分别为测试个数、集装箱个数
float weight[1000];//集装箱重量
float load;//轮船载重量
cin>>testNum;
for(i=0;i<testNum;i++)
{
cin>>containerNum>>load;
for(j=0;j<containerNum;j++)
cin>>weight[j];
sort(weight,containerNum+weight);
//开始装载
int count=0;
float sum=0.0;
for(int k=0;k<containerNum;k++)
{
if(load>=weight[k])
{
sum=sum+weight[k];
load=load-weight[k];
count++;
}
else
break;
}
cout<<"Case "<<i+1<<": "<<count<<" "<<sum<<endl;
}
return 0;
}
- 最优装载(贪心)
- 最优装载(贪心算法)
- 最优装载问题(贪心)
- 算法设计例题:最优装载(贪心)
- 最优装载问题(贪心基础)
- 贪心-最优装载问题
- 贪心,最优装载问题
- 贪心算法-最优装载
- 贪心入门--最优装载问题
- 贪心算法 最优装载问题
- 贪心算法之最优装载
- 最优装载问题--贪心算法
- 贪心算法:最优装载问题(java版本)
- 贪心算法之最优装载问题
- 最优装载问题_贪心算法
- 贪心法——最优装载问题
- 贪心算法-4.3最优装载问题
- 贪心算法——最优装载问题
- redis入门——redis常用命令
- 值传递
- PHP学习第1课(简介,如何学习)
- php学习第2课(环境配置)
- Hibernate学习笔记
- 最优装载(贪心)
- [疯狂Java讲义精粹] 第八章|异常处理
- 24位bmp彩色图的直方图均衡化
- windows,linux,mac系统host file存放的路径
- memset,memcpy,strcpy 的区别
- 2012年学习小结
- windows下ftp上传下载和一些常用命令
- 对部分整型(char)操作的测试
- mysql innodb行级锁的一些注意事项