c++ 动态规划代码
时间: 2024-01-22 16:16:27 浏览: 25
以下是一个使用C++实现的动态规划代码的例子:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int Package(int n, int V, vector<int> v, vector<int> p) {
// 定义 dp 数组及其初始化
vector<vector<int>> dp(n, vector<int>(V + 1, 0));
for (int j = v[0]; j <= V; j++) {
dp[0][j] = p[0];
}
// 动态规划的遍历
for (int i = 1; i < n; i++) {
for (int j = 0; j <= V; j++) {
if (j < v[i])
dp[i][j] = dp[i - 1][j];
else
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - v[i]] + p[i]);
}
}
return dp[n - 1][V];
}
int main() {
int n = 3; // 物品数量
int V = 10; // 背包容量
vector<int> v = {2, 3, 4}; // 物品体积
vector<int> p = {3, 4, 5}; // 物品价值
int result = Package(n, V, v, p);
cout << "最大价值为:" << result << endl;
return 0;
}
```