最优装载 算法设计分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最优装载算法设计分析

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

编程任务:

对于给定的n个集装箱和轮船的载重量C,编程计算装入最多时的集装箱个数。

Input

输入由多组测试数据组成。

每组测试数据输入的第1行中有2个正整数n和C。正整数n是集装箱个数;正整数C是轮船的载重量。接下来的一行中有n个整数,分别表示n个集装箱的重量,它们之间用空格分隔。

Output

对应每组输入,输出的每行是计算出的装入最多时的集装箱个数。Sample Input

4 5

3 5 2 1

Sample Output

2

#include

#include

#include

using namespace std;

struct Node

{

int weight;

friend bool operator <(Node a,Node b) {

return a.weight > b.weight;

}

};

int main()

{

int n,c,num,sum;

Node p;

while(cin>>n>>c)

{

priority_queueQ;

while(n--)

{

scanf("%d",&p.weight); Q.push(p);

}

num = sum = 0;

while(!Q.empty())

{

p = Q.top();

Q.pop();

sum += p.weight;

num ++;

if(sum > c)

{

num --;

break;

}

}

cout<

return 0;

}

相关文档
最新文档