问题 : 最小重量机器设计问题
时间限制: 1 Sec 内存限制: 128 MB
题目描述
设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设Wij是从供应商j处购得的部件i的重量,Cij是相应的价格。对于给定的机器部件重量和机器部件价格,设计一个优先队列式分支限界法,计算总价格不超过d的最小重量机器设计。
输入
第一行有3个正整数n,m,d。接下来的2n行,每行n个数。前n行是c,后n行是w。
输出
将计算的最小重量以及每个部件的供应商输出
样例输入
3 3 4
1 2 3
3 2 1
2 2 2
1 2 3
3 2 1
2 2 2
样例输出
4
1 3 1
代码实现:
#include<stdio.h>
#define N 100
int w[N][N];
int c[N][N];
int best[N],x[N];
int n,m;
int cost;
int tempw=0,tempc=0,minw=10000;
void traceback(int t){
if(t > n){
minw = tempw;
for(int i=1;i<=n;i++){
best[i] = x[i];
}
}
for(int i=1;i<=m;i++){
if(tempw+w[t][i]&