問題描述:
設某一機器由n個部件組成,每一種**都可以從m個不同的**商處購得。設wij是從**商j處購得的部件i的重量,cij是相應的**。 試設計乙個演算法,給出總**不超過d的最小重量機器設計。
題目型別:回溯演算法
**如下:
/*
該題traceback(num)中num代表的是第幾個部件
*/#include
int n,m,d;
int value[100][100],weight[100][100];
int best[100]=;//最佳選擇方案
int min=1000000;//最小重量
int b[100]=;//當前的選擇方案
int cur_weight=0;//當前總重量
int cur_value=0;//當前總價值
void traceback(int num)
return ;
}for(i=0;i//有m個**商可供選擇
b[num]=i;
cur_weight+=weight[num][i];
cur_value+=value[num][i];
if(cur_weight//等號必須加
traceback(num+1);
cur_weight-=weight[num][i];
cur_value-=value[num][i];
b[num]=0;
}}int main()
}for(i=0;ifor(j=0;jscanf("%d",&weight[i][j]);}}
traceback(0);
printf("the min weight is %d\n",min);
for(i=0;iprintf("%d ",best[i]);
}printf("\n");
return
0;}
最小重量機器設計問題
最小重量機器設計問題 設某一機器由 n個部件組成,每一種 都可以從 m個不同的 商處購得。設 wij是從 商 j處購得的部件 i的重量,cij是相應的 試設計乙個演算法,給出總 不超過 d的最小重量機器設計。樣例輸入 3 3 4 1 2 3 3 2 1 2 2 2 1 2 3 3 2 1 2 2 2...
最小重量機器設計問題
設某一機器由n個部件組成,每種部件都可以從m個不同的 商處購得。設wij是從 商j處購得的部件的重量,cij是相應的 設計乙個優先佇列式分支定界法,給出總 不超過d的最小重量機器設計。資料輸入 第一行有3個整數n m和d。接下來的2n行,每行n個數。前n行是c,後n行是w。結果輸出 第一行輸出計算的...
最小重量機器設計問題
問題描述 設某一機器由n個部件組成,每一種部件都可以從m個不同的 商處購得。設wij是從 商j處夠來的部件i的重量,cij是相應的 試設計乙個演算法,給出總 不超過c的最小重量機器設計。演算法設計 對於給定的機器部件重量和機器部件 計算總價值不超過d的最小重量機器設計。資料輸入 第一行由3個正整數n...