自己整理的模板,记录一下:
#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
const int M = 500;
const int N = 500;
#pragma region"01背包问题"
// 未优化版
int pack01(vector<int>& weight, vector<int>& value, int sum, int n)
{
int dp[M][N];
for (int i = 0; i <= sum; ++i)
{
dp[0][i] = i >= weight[0] ? value[0] : 0;
}
for (int i = 1; i < n; ++i)
{
for (int v = weight[i]; v <= sum; ++v)
{
dp[i][v] = max(dp[i - 1][v], dp[i -