标题:装载问题
只看楼主
无悔选择
Rank: 1
等 级:新手上路
威 望:1
帖 子:45
专家分:0
注 册:2005-12-25
 问题点数:0 回复次数:1 
装载问题

考察了用最大数量的货箱装船的问题。现在对该问题做一些改动。在新问题中,有两艘船,n个集装箱。第一艘船的载重量是c1,第二艘船的载重量是c2,wi 是集装箱i 的重量且所有集装箱的总重量不超过c1+c2。我们希望确定是否有一种可将所有n 个货箱全部装船的方法。若有的话,找出该方法。
提示:求出不超过c1的最大值max,若总重量-max < c2则能装入到两艘船。

搜索更多相关主题的帖子: 货箱 装载 载重量 集装箱 max 
2006-04-08 14:53
无悔选择
Rank: 1
等 级:新手上路
威 望:1
帖 子:45
专家分:0
注 册:2005-12-25
得分:0 
#include"iostream.h"
#define X 5
int M,N,a[X+1],max;
int b[X+1];
void search();
void find(int n);
void main()
{
int y,i,weight=0;
cout<<"两船的载重为:"<<endl;
cin>>M>>N;
cout<<"输入集装箱的重量(集装箱的个数为5):"<<endl;
for(i=1;i<=X;i++)
{
cin>>b[i];
}
find(1);
for(i=1;i<=X;i++)
weight=weight+b[i];
y=weight-max;
if(y<=N)
cout<<"可以将集装箱全部装入船中!"<<endl;
else
cout<<"不可以将集装箱全部装入船中!"<<endl;
}
void search()
{
int i,c=0;
for(i=1;i<X+1;i++)
{
if(a[i]==1)
c=c+b[i];
}
if(c<=M&&c>max)
max=c;
}
void find(int n)
{
if(n>5)
{
search();
}
else
{
find(n+1);
a[n]=1;
find(n+1);
a[n]=0;
}
}

2006-04-08 14:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-56050-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.596686 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved