【問題描述】
某一機器由n個部件組成,編號1–n, 每一種部件都可以由m個供貨商提供,供貨商編號1–m。設wij表示**商j處購得的部件i的重量,cij是相應的**。對於給定的機器部件重量和機器部件**,計算總**不超過cost的最小重量機器設計,可以在同乙個**商處購得多個部件。
【輸入描述】
n, m, cost
接下來n行表示wij
最後n行表示cij
【輸入】
3 3 7
1 2 3
3 2 1
2 3 2
1 2 3
5 4 2
2 1 2
【輸出】
1 3 1
4
【思路】
就是乙個簡單的dfs回溯習題,狀態涉及部件的編號,當前的部件重量和當前的開銷,所以設dfs(int k, int weight, int pay)
【**】:
/*3 3 7
1 2 3
3 2 1
2 3 2
1 2 3
5 4 2
2 1 2
*/#includeusing namespace std;
const int maxn = 100;
int n, m, cost; //n個部件,m個**商,不能超過cost的開銷
int w[maxn][maxn]; //w[i][j]表示部件i從**商j得到的重量
int c[maxn][maxn];
int x[maxn]; //裝每個零件對應的**商的編號
int res[maxn];
int min_w = 0x3f3f3f3f;
void dfs(int k, int weight, int pay) //每次搜第k個部件
}return ;
}//else
for(int i = 1;i <= m;i++)
}}int main()
}for(int i = 1;i <= n;i++)
}dfs(1, 0, 0);
for(int i = 1;i <= m;i++)
cout << endl;
cout << min_w << endl;
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處購得的部件i的重量,cij是相應的 試設計乙個演算法,給出總 不超過d的最小重量機器設計。題目型別 回溯演算法 如下 該題traceback num 中num代表的是第幾個部件 include int n,...
最小重量機器設計問題
設某一機器由n個部件組成,每種部件都可以從m個不同的 商處購得。設wij是從 商j處購得的部件的重量,cij是相應的 設計乙個優先佇列式分支定界法,給出總 不超過d的最小重量機器設計。資料輸入 第一行有3個整數n m和d。接下來的2n行,每行n個數。前n行是c,後n行是w。結果輸出 第一行輸出計算的...