最小重量機器設計

2021-09-29 02:18:53 字數 1206 閱讀 8562

【問題描述】

某一機器由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。結果輸出 第一行輸出計算的...