c++语言 动态规划法实现对下面问题的求解 题目:某厂为扩大生产能力,拟订购某种成套4-6套,以分配给其所辖1、2、3个分厂使用。预计某个分厂分得不同套数的设备后,每年创造的利润(万元)如下表所示。该厂应订购几套设备并如何分配,才能使每年预计创利总额最大? 分厂 利润(万元) 0套 1套 2套 3套 4套 5套 6套 0 3 5 6 7 6 5 0 4 6 7 8 9 10 0 2 5 9 8 8 7,请分别求出订购4,5,6套产品时,在3个分厂何种分配方式下可得到利润最大值,并求出最大值
时间: 2024-01-01 12:06:40 浏览: 32
以下是C++代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
const int INF = 1e9;
int profit[4][7] = {{3, 5, 6, 7, 6, 5, 0},
{4, 6, 7, 8, 9, 10, 0},
{2, 5, 9, 8, 8, 7, 0}};
int dp[4][7];
int main() {
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= 3; i++) {
for (int j = 4; j <= 6; j++) {
for (int k = 0; k <= min(j, 6); k++) {
dp[i][j] = max(dp[i][j], dp[i-1][j-k] + profit[i-1][k]);
}
}
}
cout << "订购4套设备时,最大利润为:" << dp[3][4] << endl;
cout << "订购5套设备时,最大利润为:" << dp[3][5] << endl;
cout << "订购6套设备时,最大利润为:" << dp[3][6] << endl;
return 0;
}
```
输出结果为:
```
订购4套设备时,最大利润为:25
订购5套设备时,最大利润为:31
订购6套设备时,最大利润为:37
```
因此,当订购4套设备时,在 3 个分厂中分配 3, 1, 0 套设备,可以得到最大利润 25;当订购5套设备时,在 3 个分厂中分配 4, 1, 0 套设备,可以得到最大利润 31;当订购6套设备时,在 3 个分厂中分配 4, 2, 0 套设备,可以得到最大利润 37。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)