装载问题

原创 2007年09月27日 21:31:00

在vc6.0中调试通过

 #include "stdio.h"
#include "stdlib.h"

int c1=1,c2=1,n=1;
int w[11],a[11],max=0;
void checkmax(){

 int i,weight=0;
 for(i=1;i<=n;i++)
  if(a[i]==1)weight=weight+w[i];
  if(weight>max&&weight<=c1)
   max=weight;
}
void search(int m){

 if(m>n)checkmax();
 else
 {
     a[m]=0;search(m+1);
  a[m]=1;search(m+1);
 }

}
void print()
{
int sum=0;
int i;
for(i=1;i<=n;i++)
sum=sum+w[i];
if((sum-max)<=c2)
printf("yes!/n");
else printf("no/n");
}
void main(){
 while(c1!=0&&c2!=0&&n!=0)
 {
      scanf("%d%d%d",&c1,&c2,&n);
   for(int i=1;i<=n;i++)
    scanf("%d",&w[i]);
   if(c1!=0&&c2!=0&&n!=0)
   {
   search(1);
   print();
   }
 }
}

装载问题

描述有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。输入多个测例,每个测例的输入占两行。第一...
  • Mammon_
  • Mammon_
  • 2016年05月15日 01:22
  • 228

装载问题(1)

自己实现的算法: #include int weight[4] = {0,10,40,20}; //0号位置不使用 int x[4]; //记录i号物品所装入箱子的号码, int c1 = 3...

装载问题(回溯)

算法设计例题:装载问题(回溯、分枝限界) memory limit: 5000KB    time limit: 500MS accept: 34    submit: 82 Descripti...

装载问题

 #include using namespace std; /*7 8 2 8 7 7 9 2 8 8 0 0 0 Yes No*/ int c1 , c2 , n , w[...

装载问题

//回溯法解装载问题 #include int cw=0,bestw=0; int r=0; const maxn=100; int x[maxn]={0}; int b[maxn]={0}; int...

装载问题

Problem Description 在一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集...

装载问题

参考:计算机算法设计与分析(第三版)王晓东 编著 1、只返回能装载的最大值 #include #include #include #include #include using namesp...
  • wodwl
  • wodwl
  • 2013年03月12日 09:56
  • 724

装载问题.回溯法

  • 2008年04月04日 07:47
  • 966B
  • 下载

【回溯法解决最优装载问题】

最近算法课在讲解回溯法,回溯法是一种利用树结构,遍历全部可能结果,并输出最优解的算法,它能够保证每一种结果都考虑到,不会出现漏掉的情况。 在用回溯法时,重要的一步操作是画出解空间树,之后按照深度优先便...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:装载问题
举报原因:
原因补充:

(最多只允许输入30个字)